我可以动态改变控制布局吗?

时间:2017-05-23 14:17:23

标签: delphi vcl

有没有办法将窗口或对话框从垂直布局改为水平布局?

e.g。从这(狭窄的高窗)

A: -------  
B: -------  
C: --------  
D: --------  

到此(方形窗口)

A:-------- C:-------
B:-------- D:--------

到此(宽窗口)。

A:------ B:------- C:-------- D:---------

当我调整窗口大小时? A,B,C,D是编辑框或组合框等

显然,我可以使用包含3个(或更多)页面和不可见标签的页面控件,并在这些页面之间切换,但我希望这样做没有这样的重复。

我希望找到一个不需要我编写代​​码的解决方案。

1 个答案:

答案 0 :(得分:4)

此示例使用TFlowPanel。它已添加到表单中,Align设置为alClientTEdit添加了四个TFlowPanel控件。调整表单大小时,它们会按照您描述的方式自动重新调整。

enter image description here

enter image description here

enter image description here

enter image description here

更改FlowStyle属性允许您自定义布局行为。上面显示默认fsLeftRightTopBottom给出:

 A:-------- B:-------
 C:-------- D:--------

在方形窗口中。但是,使用fsTopBottomLeftRight会为您提供问题中的布局。

 A:-------- C:-------
 B:-------- D:--------