Sign in Join
Wiki copytemporary

TSplitter/ru

Deutsch · English · Français · Suomi · Русский

TSplitter является компонентом, который может быть размещен на панели или форме в виде вертикальной или горизонтальной полосы для функционального разделения панелей.

Элемент управления TSplitter может быть использован в качестве визуального разделителя между двумя половинами формы и предоставляет пользователю приложения возможность перемещать его вертикально или горизонтально. Данный компонент можно найти на вкладке Additional палитры компонентов.

Элемент управления TSplitter в основном может работать в двух различных режимах: с помощью Align (способ для Delphi) или с помощью AnchorSides (не поддерживается в Delphi).

Элемент Splitter и выравнивание

Выравнивание (Align) может использоваться для простого расположения двух (или ряда) элементов. Например, когда вам необходимы некоторые элементы с изменяемыми размерами, такие как элемент Memo и Listbox.

В следующем примере продемонстрировано это.

Во время разработки

  1. создайте новую форму.
  2. разместите на форме элемент TMemo (щелкните левой кнопкой мыши на значке TMemo на палитре компонентов, а затем щелкните левой кнопкой на форме).
  3. установите в Инспекторе объектов свойство Align элемента Memo1 в значение alLeft.
  4. разместите на форме элемент TSplitter.
  5. по умолчанию свойство Align уже установлено в alLeft.
  6. разместите на форме другой элемент TMemo.
  7. установите в Инспекторе объектов свойство Align элемента Memo2 в значение alClient.

Во время выполнения

Вы можете выполнить те же действия, что и выше, программно, а не в дизайнере форм/Инспекторе объектов:

pascal
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 можно заполнить всё пространство. Якорная привязка позволяет пристыковывать элементы управления к соседнему элементу.

Во время разработки

  1. создайте новую форму.
  2. разместите на форме элемент TMemo (щелкните левой кнопкой мыши на значке TMemo на палитре компонентов, а затем щелкните левой кнопкой на форме).
  3. установите в Инспекторе объектов свойство Align элемента Memo1 в значение alLeft.
  4. разместите на форме элемент TSplitter.
  5. установите свойство Align элемента Splitter1 в значение alNone.
  6. выберите элемент Memo1.
  7. выберите пункт меню 'Вид' -> 'Редактор привязок'
  8. привяжите правую сторону элемента Memo1 к элементу Splitter1.
  9. разместите на форме другой элемент TMemo.
  10. установите в Инспекторе объектов свойство Align элемента Memo2 в значение alRight.
  11. привяжите левую сторону элемента Memo2 к элементу Splitter1. Убедитесь, что он привязан к правой стороне элемента Splitter1 (кнопка под выпадающим списком в Редакторе привязок должна быть нажата).

Во время выполнения

Вы можете выполнить те же действия, что и выше, программно, а не в дизайнере форм/Инспекторе объектов:

pascal
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.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.