我可以即时更改控件布局吗?

Can I alter control layout on the fly?

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

例如来自这个(窄高window)

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

至此(方window)

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

至此(宽window)。

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

当我调整 window 的大小时? A、B、C、D 为编辑框或组合框等

显然,我可以使用包含 3 个(或更多)页面和不可见选项卡的页面控件,并在它们之间交替使用,但我希望这样做时不会出现这种重复。

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

这个例子使用了TFlowPanel。它被添加到 Align 设置为 alClient 的表单中。 TFlowPanel 添加了四个 TEdit 控件。调整表单大小时,它们会按照您描述的方式自动重新对齐。

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

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

在广场window。但是,使用 fsTopBottomLeftRight 将为您提供问题中的布局。

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