Delphi: разделитель изменяет размеры только 2 панелей, которые он разделяет

У меня 4 панели подряд с 3 сплиттерами между ними. 1-е /2-е /3-е панели: align=alLeft4-я панель: align=alClient,

[1] | [2] | [3] | [4]

Теперь пользователь хочет, чтобы

  • разделитель 1 изменяет размеры только панелей 1 и 2 (не трогайте другие; теперь он перемещает панели 3/4)
  • разделитель 2 изменяет размеры только панелей 2 и 3 (не трогайте других; теперь он перемещает панель 4)

Как это сделать, какие события обрабатывать (TSplitter.OnMoved конечно) и как с ними справиться? Может быть, не установить Align как теперь?

1 ответ

Решение

Предполагая, что Splitter 3 (последний) должен изменять только панели 3 и 4, это можно сделать с небольшим вложением:

  1. Верхний уровень имеет PanelA (alLeft), Splitter3 (alLeft), Panel4 (alClient).
  2. PanelA содержит PanelB (alLeft), Splitter2 (alLeft), Panel3 (alClient).
  3. PanelB содержит Panel1 (alLeft), Splitter1 (alLeft), Panel2 (alClient).
Другие вопросы по тегам