【问题标题】:Layout of panels with splitters带分离器的面板布局
【发布时间】:2011-01-18 16:18:20
【问题描述】:

我对 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 对此有一些不错的解决方案?

问候

【问题讨论】:

  • 哇。我只是很惊讶你已经用这个分离器走了这么远。分离器组件可能是 vcl 中最不“可行”的组件。我建议您改为查看 raize components splitterpanel。我发现它更容易使用。
  • 这只是一个恼人的故障,总的来说我对 Devexpress 组件套件感到满意。该应用程序主要将它们用于网格。
  • 我认为 dxSplitter 只是包含的 vcl 拆分器的一个更漂亮的版本。 dxSplitter 的工作方式与标准的 vcl 分离器有什么不同吗?

标签: delphi layout delphi-2007


【解决方案1】:

试试这个属性

cxSplitter1.ResizeUpdate:=True;

【讨论】:

    【解决方案2】:

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

    但拆分器上还有一个 OnCanResize 事件,因此您也可以防止在那里调整大小。

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

    【讨论】:

    • 我使用 OnCanResize 事件并防止调整大小超出限制。谢谢!
    猜你喜欢
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2017-11-23
    • 2012-09-04
    • 1970-01-01
    相关资源
    最近更新 更多