Компоновка панелей с разделителями - PullRequest
4 голосов
/ 19 февраля 2010

У меня вопрос по макету с TPanels и TcxSplitter от DevExpress. Panellayout http://pp.kpnet.fi/bengtsson/temp/layout.png

Основная форма имеет несколько панелей от A до G. A - F собрана в одной панели ABCDEF. ABCDEF содержит 3 панели: AB, CDE и F. Панель CDE содержит панель CD.

Между всеми пределами между панелями находится TcxSplitter от DevExpress. Проблема в том, что пользователь может взять сплиттер между ABCDEF и G и переместить его влево, чтобы он достиг панели AB и панели крышки CDE. Я не хочу этого допустить.

Вместо этого я хочу, чтобы панель CDE имела минимальную ширину, скажем, 5 пикселей. Тогда ширина панели AB должна быть уменьшена. Надеюсь, я объяснил достаточно хорошо :) Я попытался установить ограничение CDM на панели CDE, но панель все еще можно скрыть. Может быть, у Devexpress есть хорошее решение для этого?

Привет

Ответы [ 2 ]

2 голосов
/ 19 февраля 2010

cxSplitter имеет свойство MinSize, насколько я вижу в тестовом приложении, оно учитывается при изменении размера. Поскольку имеется только 1 свойство MinSize, оно проверяется для панелей по обе стороны от разделителя, поэтому вы не можете указать, скажем, минимум 50 пикселей для одной стороны и 100 для панели на другой стороне разделителя. Убедитесь, что свойство AutoSnap имеет значение false.

Но на сплиттере также есть событие OnCanResize, так что вы также можете предотвратить изменение размера.

Кроме того, поскольку вы используете devex, я бы предложил вам использовать либо dockSite / dockPanel, либо LayoutControl v2 вместо простого Delphi TPanel.

1 голос
/ 19 февраля 2010

Попробуйте это свойство

cxSplitter1.ResizeUpdate:=True;
...