带分离器的面板布局

时间:2010-02-19 07:34:55

标签: delphi layout delphi-2007

我对来自DevExpress的TPanels和TcxSplitter的布局有疑问。 panellayout http://pp.kpnet.fi/bengtsson/temp/layout.png

主要形式有一些面板A到G. A - F收集在一个面板ABCDEF中。 ABCDEF包含3个面板: AB,CDE和F. Panel CDE包含面板CD。

在面板之间的所有限制之间,有一个来自DevExpress的TcxSplitter。 问题是用户可以在ABCDEF和G之间取出分离器并将其向左移动,使其到达面板AB和盖板CDE。我不想允许这样做。

相反,我希望面板CDE的最小宽度为5像素。然后应缩小面板AB的宽度。希望我解释得足够好:) 我试图在面板CDE上设置constraint.minwidth = 5,但仍然可以隐藏面板。也许Devexpress有一个很好的解决方案吗?

此致

2 个答案:

答案 0 :(得分:2)

cxSplitter具有MinSize属性,从我在测试应用程序中看到的,它在调整大小时得到尊重。由于只有1个MinSize属性,因此检查分割器两侧的面板,因此您不能指定一侧最小50像素,分割器另一侧面板100。确保AutoSnap属性为false。

但是在分割器上还有一个OnCanResize事件,所以你也可以防止在那里调整大小。

此外,由于您使用的是devex,我建议您使用dockSite / dockPanel或LayoutControl v2而不是普通的Delphi TPanel。

答案 1 :(得分:1)

试试这个属性

cxSplitter1.ResizeUpdate:=True;