Sign in Join
Wiki copytemporary

TSplitter/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: TSplitter/ru

OldNewLine
1+**TSplitter** ![](/wiki-images/0/03/Tsplitter.png) является компонентом, который может быть размещен на панели или форме в виде вертикальной или горизонтальной полосы для функционального разделения панелей.
2+
3+Элемент управления **TSplitter** может быть использован в качестве визуального разделителя между двумя половинами формы и предоставляет пользователю приложения возможность перемещать его вертикально или горизонтально. Данный компонент можно найти на вкладке [[Additional tab/ru|Additional]] [[Component Palette/ru|палитры компонентов]].
4+
5+Элемент управления **TSplitter** в основном может работать в двух различных режимах: с помощью [[Autosize / Layout/ru|Align]] (способ для Delphi) или с помощью [[Autosize / Layout/ru|AnchorSides]] (не поддерживается в Delphi).
6+
7+## Элемент Splitter и выравнивание
8+
9+Выравнивание (*Align*) может использоваться для простого расположения двух (или ряда) элементов. Например, когда вам необходимы некоторые элементы с изменяемыми размерами, такие как элемент [[TMemo/ru|Memo]] и [[TListbox/ru|Listbox]].
10+
11+В следующем примере продемонстрировано это.
12+
13+### Во время разработки
14+
15+1. создайте новую [[TForm/ru|форму]].
16+2. разместите на форме элемент [[TMemo/ru|TMemo]] (щелкните левой кнопкой мыши на значке TMemo на палитре компонентов, а затем щелкните левой кнопкой на форме).
17+3. установите в Инспекторе объектов свойство *Align* элемента **Memo1** в значение *alLeft*.
18+4. разместите на форме элемент **TSplitter**.
19+5. по умолчанию свойство *Align* уже установлено в *alLeft*.
20+6. разместите на форме другой элемент **TMemo**.
21+7. установите в Инспекторе объектов свойство *Align* элемента **Memo2** в значение *alClient*.
22+
23+### Во время выполнения
24+
25+Вы можете выполнить те же действия, что и выше, программно, а не в дизайнере форм/Инспекторе объектов:
26+
27+``` pascal
28+procedure TMainForm.FormCreate(Sender: TObject);
29+var
30+ Memo1: TMemo;
31+ Splitter1: TSplitter;
32+ Memo2: TMemo;
33+begin
34+ Memo1:=TMemo.Create(Self);
35+ with Memo1 do begin
36+ Name:='Memo1';
37+ Parent:=Self;
38+ Align:=alLeft;
39+ end;
40+ Splitter1:=TSplitter.Create(Self);
41+ with Splitter1 do begin
42+ Name:='Splitter1';
43+ Parent:=Self;
44+ Left:=1; // позиция справа от Memo1
45+ Align:=alLeft;
46+ end;
47+ Memo2:=TMemo.Create(Self);
48+ with Memo2 do begin
49+ Name:='Memo2';
50+ Parent:=Self;
51+ Align:=alClient;
52+ end;
53+end;
54+```
55+
56+## Элемент Splitter с якорной привязкой
57+
58+Якоря (*Anchor*) позволяют более точно настроить расположение. С помощью свойства *Align* можно заполнить всё пространство. Якорная привязка позволяет пристыковывать элементы управления к соседнему элементу.
59+
60+### Во время разработки
61+
62+1. создайте новую [[TForm/ru|форму]].
63+2. разместите на форме элемент [[TMemo/ru|TMemo]] (щелкните левой кнопкой мыши на значке TMemo на палитре компонентов, а затем щелкните левой кнопкой на форме).
64+3. установите в Инспекторе объектов свойство *Align* элемента **Memo1** в значение *alLeft*.
65+4. разместите на форме элемент **TSplitter**.
66+5. установите свойство *Align* элемента **Splitter1** в значение *alNone*.
67+6. выберите элемент **Memo1**.
68+7. выберите пункт меню 'Вид' -\> 'Редактор привязок'
69+8. привяжите правую сторону элемента *Memo1* к элементу **Splitter1**.
70+9. разместите на форме другой элемент **TMemo**.
71+10. установите в Инспекторе объектов свойство *Align* элемента **Memo2** в значение *alRight*.
72+11. привяжите левую сторону элемента *Memo2* к элементу **Splitter1**. Убедитесь, что он привязан к правой стороне элемента **Splitter1** (кнопка под выпадающим списком в Редакторе привязок должна быть нажата).
73+
74+### Во время выполнения
75+
76+Вы можете выполнить те же действия, что и выше, программно, а не в дизайнере форм/Инспекторе объектов:
77+
78+``` pascal
79+procedure TMainForm.FormCreate(Sender: TObject);
80+var
81+ Memo1: TMemo;
82+ Splitter1: TSplitter;
83+ Memo2: TMemo;
84+begin
85+ Memo1:=TMemo.Create(Self);
86+ with Memo1 do begin
87+ Name:='Memo1';
88+ Parent:=Self;
89+ Align:=alLeft;
90+ end;
91+ Splitter1:=TSplitter.Create(Self);
92+ with Splitter1 do begin
93+ Name:='Splitter1';
94+ Parent:=Self;
95+ Align:=alNone;
96+ Left:=100; // some value
97+ AnchorParallel(akBottom,0,Parent);
98+ end;
99+ Memo1.AnchorToNeighbour(akRight,0,Splitter1);
100+ Memo2:=TMemo.Create(Self);
101+ with Memo2 do begin
102+ Name:='Memo2';
103+ Parent:=Self;
104+ Align:=alRight;
105+ AnchorToNeighbour(akLeft,0,Splitter1);
106+ end;
107+end;
108+```
109+
110+## См. также
111+
112+- [[doc:lcl/extctrls/tsplitter.html|Документация по TSplitter]]
113+- [[TPairSplitter/ru|TPairSplitter]]
114+
115+---
116+*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](/wiki-contact).*

Back to history