我对来自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有一个很好的解决方案吗?
此致
答案 0 :(得分:2)
cxSplitter具有MinSize属性,从我在测试应用程序中看到的,它在调整大小时得到尊重。由于只有1个MinSize属性,因此检查分割器两侧的面板,因此您不能指定一侧最小50像素,分割器另一侧面板100。确保AutoSnap属性为false。
但是在分割器上还有一个OnCanResize事件,所以你也可以防止在那里调整大小。
此外,由于您使用的是devex,我建议您使用dockSite / dockPanel或LayoutControl v2而不是普通的Delphi TPanel。
答案 1 :(得分:1)
试试这个属性
cxSplitter1.ResizeUpdate:=True;