TSplitter/ru
Deutsch · English · Français · Suomi · Русский
TSplitter
является компонентом, который может быть размещен на панели или форме в виде вертикальной или горизонтальной полосы для функционального разделения панелей.
Элемент управления TSplitter может быть использован в качестве визуального разделителя между двумя половинами формы и предоставляет пользователю приложения возможность перемещать его вертикально или горизонтально. Данный компонент можно найти на вкладке Additional палитры компонентов.
Элемент управления TSplitter в основном может работать в двух различных режимах: с помощью Align (способ для Delphi) или с помощью AnchorSides (не поддерживается в Delphi).
Элемент Splitter и выравнивание
Выравнивание (Align) может использоваться для простого расположения двух (или ряда) элементов. Например, когда вам необходимы некоторые элементы с изменяемыми размерами, такие как элемент Memo и Listbox.
В следующем примере продемонстрировано это.
Во время разработки
- создайте новую форму.
- разместите на форме элемент TMemo (щелкните левой кнопкой мыши на значке TMemo на палитре компонентов, а затем щелкните левой кнопкой на форме).
- установите в Инспекторе объектов свойство Align элемента Memo1 в значение alLeft.
- разместите на форме элемент TSplitter.
- по умолчанию свойство Align уже установлено в alLeft.
- разместите на форме другой элемент TMemo.
- установите в Инспекторе объектов свойство Align элемента Memo2 в значение alClient.
Во время выполнения
Вы можете выполнить те же действия, что и выше, программно, а не в дизайнере форм/Инспекторе объектов:
procedure TMainForm.FormCreate(Sender: TObject);
var
Memo1: TMemo;
Splitter1: TSplitter;
Memo2: TMemo;
begin
Memo1:=TMemo.Create(Self);
with Memo1 do begin
Name:='Memo1';
Parent:=Self;
Align:=alLeft;
end;
Splitter1:=TSplitter.Create(Self);
with Splitter1 do begin
Name:='Splitter1';
Parent:=Self;
Left:=1; // позиция справа от Memo1
Align:=alLeft;
end;
Memo2:=TMemo.Create(Self);
with Memo2 do begin
Name:='Memo2';
Parent:=Self;
Align:=alClient;
end;
end;Элемент Splitter с якорной привязкой
Якоря (Anchor) позволяют более точно настроить расположение. С помощью свойства Align можно заполнить всё пространство. Якорная привязка позволяет пристыковывать элементы управления к соседнему элементу.
Во время разработки
- создайте новую форму.
- разместите на форме элемент TMemo (щелкните левой кнопкой мыши на значке TMemo на палитре компонентов, а затем щелкните левой кнопкой на форме).
- установите в Инспекторе объектов свойство Align элемента Memo1 в значение alLeft.
- разместите на форме элемент TSplitter.
- установите свойство Align элемента Splitter1 в значение alNone.
- выберите элемент Memo1.
- выберите пункт меню 'Вид' -> 'Редактор привязок'
- привяжите правую сторону элемента Memo1 к элементу Splitter1.
- разместите на форме другой элемент TMemo.
- установите в Инспекторе объектов свойство Align элемента Memo2 в значение alRight.
- привяжите левую сторону элемента Memo2 к элементу Splitter1. Убедитесь, что он привязан к правой стороне элемента Splitter1 (кнопка под выпадающим списком в Редакторе привязок должна быть нажата).
Во время выполнения
Вы можете выполнить те же действия, что и выше, программно, а не в дизайнере форм/Инспекторе объектов:
procedure TMainForm.FormCreate(Sender: TObject);
var
Memo1: TMemo;
Splitter1: TSplitter;
Memo2: TMemo;
begin
Memo1:=TMemo.Create(Self);
with Memo1 do begin
Name:='Memo1';
Parent:=Self;
Align:=alLeft;
end;
Splitter1:=TSplitter.Create(Self);
with Splitter1 do begin
Name:='Splitter1';
Parent:=Self;
Align:=alNone;
Left:=100; // some value
AnchorParallel(akBottom,0,Parent);
end;
Memo1.AnchorToNeighbour(akRight,0,Splitter1);
Memo2:=TMemo.Create(Self);
with Memo2 do begin
Name:='Memo2';
Parent:=Self;
Align:=alRight;
AnchorToNeighbour(akLeft,0,Splitter1);
end;
end;См. также
From the Free Pascal wiki, page "TSplitter/ru", as it stood on 2020-03-02 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
