delphi - 如何防止两个对齐底部控件的顺序颠倒?

标签 delphi delphi-2007 vcl

我有一个包含三个主要组成部分的表单:

  1. 设置为与客户端对齐的 FlowPanel
  2. 将第二个 FlowPanel 设置为“对齐到底部”
  3. 状态栏设置为“与底部对齐”。

一切开始看起来都很棒。但与底部对齐的FlowPanel也设置为AutoSize。它包含一个可以自行折叠的面板。内部面板包含用户可以决定隐藏的摘要信息。这会将 FlowPanel 的大小减小到非常小,但并未完全消失。还有一个按钮,用户可以在其中重新展开摘要面板。

当面板重新展开导致 FlowPanel 增大时,就会出现问题。此时 Status Bar 和 FlowPanel 的顺序相反。它们仍然设置为底部对齐,但现在状态栏位于我的 FlowPanel 上方。

我可以在没有折叠面板的测试应用程序中复制此内容,只需在表单上放置按钮即可查看底部流程面板的高度。如果高度增加,顺序就会改变。如果减少,那么一切都会保持相同的顺序。我的测试表单中唯一的代码是:

FlowPanel2.Height := FlowPanel2.Height * 2;

我还使用底部面板作为常规 TPanel 而不是 FlowPanel 进行了测试,结果相同。

关于为什么会发生这种情况以及如何预防它有什么想法吗?

Moving Status bar image

最佳答案

我的解决方案:

  1. 将状态栏放置在表单上并与底部对齐
  2. 在表单上放置一个面板 (Container_Panel) 并与客户端对齐
  3. 将 FlowPanel 放置在 Container_Panel 上并与底部对齐
  4. 将 FlowPanel 放置在 Container_Panel 上并与客户端对齐

现在你应该不再有任何问题了

关于delphi - 如何防止两个对齐底部控件的顺序颠倒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13979704/

相关文章:

Delphi 2007 - 允许在 TSaveDialog 中选择只读文件

Delphi - 屏幕键盘 (osk.exe) 在 Win32 上工作,但在 Win64 上失败

delphi - 如何将 BLOB 流中的任意图像加载到 TImage 中?

Delphi VCL 强制菜单重绘

c++ - 如何在TEdit控件中设置textalignment

delphi - 无法解析 Delphi 中的单元名称

delphi - 在控制台应用程序中屏蔽密码输入

delphi - 异常消息从哪里来?

delphi - 使用Delphi 2007在运行时将IXMLDOMDocument3保存到xml文件中

inno-setup - 创新设置: change the setup language while setup is running