【发布时间】:2011-03-11 18:37:59
【问题描述】:
我有一个对话框,其布局如下:
---------------------------------------------
| |
| CONFIG AREA |
| Align: alTop |
--------------------------------------------- <-static boundary
| |
| DISPLAY AREA 1 |
| Align: alTop |
============================================= <-TSplitter Align: alTop
| |
| DISPLAY AREA 2 |
| align: alClient |
--------------------------------------------- <-bottom of dialog
但是,在运行时,拆分器不会出现在显示区 1 和显示区 2 之间,而是显示在配置区和显示区 1 之间,从而导致一些烦人的界面问题。表单的设置相关事件处理程序中没有任何内容可以更改任何这些组件的 Visible 或 Align 属性。有谁知道为什么拆分器没有加载到表单设计器中的位置?
【问题讨论】:
-
从您所展示的内容来看,它应该可以按预期工作。唯一想到的是约束、边距(如果自动调整大小且边距为真)和拆分器的 MinSize 属性。我最近对表单的意外增长感到各种乐趣,因为拆分器的 MinSize 在错误的时间获得了“荣誉”。我会检查 Splitters MinSize 是默认的,并且小于 Config+Display 的高度并且小于 Display2 的(初始)高度。对约束/边距的类似检查。其他可能性:Explicit Height 让他们肮脏的手指参与其中。
-
再想一想:@GameCat 的解释可能就是正在发生的事情。如果 dfm 中的顺序未反映屏幕上的顺序,则拆分器可能会出现在您意想不到的地方。
标签: delphi user-interface splitter