Delphi: разделитель изменяет размеры только 2 панелей, которые он разделяет
У меня 4 панели подряд с 3 сплиттерами между ними. 1-е /2-е /3-е панели: align=alLeft
4-я панель: align=alClient
,
[1] | [2] | [3] | [4]
Теперь пользователь хочет, чтобы
- разделитель 1 изменяет размеры только панелей 1 и 2 (не трогайте другие; теперь он перемещает панели 3/4)
- разделитель 2 изменяет размеры только панелей 2 и 3 (не трогайте других; теперь он перемещает панель 4)
Как это сделать, какие события обрабатывать (TSplitter.OnMoved
конечно) и как с ними справиться? Может быть, не установить Align
как теперь?
1 ответ
Решение
Предполагая, что Splitter 3 (последний) должен изменять только панели 3 и 4, это можно сделать с небольшим вложением:
- Верхний уровень имеет PanelA (alLeft), Splitter3 (alLeft), Panel4 (alClient).
- PanelA содержит PanelB (alLeft), Splitter2 (alLeft), Panel3 (alClient).
- PanelB содержит Panel1 (alLeft), Splitter1 (alLeft), Panel2 (alClient).