TRxSplitter Component

Unit
RxSplit

Description
TRxSplitter (разделитель) предназначен для помещения между двумя элементами управления (controls), с целью дать возможность пользователю во время выполнения программы изменять взаимные размеры этих двух элементов управления.
Для этого нужно провести курсор над полоской, разделяющей эти два элемента, и при появлении курсора изменения размера, нажав левую кнопку, перетащить полоску в ее новое положение. При этом произойдет изменение размеров.

Может разделять элементы как по горизонтали, так и по вертикали. Задание значения свойству LimitOffset позволяет Вам ограничить перемещение разделителя.
Элементы управления, которые он будет разделять, задаются свойствами ControlFirst и ControlSecond. При использовании важным является сочетание свойств Align у самого Splitter'а и у элементов ControlFirst, ControlSecond. При правильном выставлении этих свойств в дизайнере Delphi, read-only свойство Cursor у Splitter'а примет значение crHSplit при вертикальном разделении и crVSplit при горизонтальном. Иначе, изменение размеров во время выполнения будет невозможно.

Возможно задание значения только одного свойства — ControlFirst. При правильной установке свойств Align у этого элемента и сопряженных с ним в форме компонента TRxSplitter также позволяет изменять их размеры.
Во время перемещения splitter-а по форме в run-time пользователь может нажать клавишу "Esc" для отмены перемещения разделителя.



Примеры работы и некоторые интересные свойства и методы.

Declaration
property ControlFirst: TControl;

Description
Один из элементов управления, которые разделяет и чьи размеры меняет rxSplitter.
Это элемент расположенный либо левее, либо выше.
Значение этого свойства задается автоматически при присвоении значения свойству Align и сожет быть изменено вручную.
Обычно Вам достаточно задать значение одному из двух свойств — ControlFirst или ControlSecond.



Declaration
property ControlFirst: TControl;

Description
Один из элементов управления, которые разделяет и чьи размеры меняет rxSplitter.
Это элемент расположенный либо левее, либо выше.
Значение этого свойства задается автоматически при присвоении значения свойству Align и сожет быть изменено вручную.
Обычно Вам достаточно задать значение одному из двух свойств — ControlFirst или ControlSecond.



Declaration
property ControlSecond: TControl;

Description
Один из элементов управления, которые разделяет и чьи размеры меняет rxSplitter. Это элемент расположенный либо правее, либо ниже.
Если задано значение ControlFirst, Вам нет необходимости задавать значение этого свойства.



Purpose

Дать возможность пользователю во время выполнения программы изменять взаимные размеры двух элементов управления.
Tasks
Поместите первый элемент в форму: пусть, например, это будет TPanel. Выставите свойство Align в alTop.
Поместите в форму TRxSplitter, выставив ему Align alTop. Он теперь должен располагаться тонкой полоской под Panel.

Поместите в форму под Panel, например TDBGrid. Установите его Align в alClient или alTop. Splitter окажется зажат между панелью и гридом.
Выберите ControlFirst и ControlSecond у Splitter'а соответственно в Panel и DBGrid. Свойство Cursor у rxSplitter'а должно измениться в crVSplit, означая, что будет доступно вертикальное взаимное изменение размеров Panel и DBGrid.

По аналогии можно установить разделитель вериткально между горизонтальными элементами.