【问题标题】:Delphi Resizing Form messes up componentsDelphi Resizing Form 弄乱了组件
【发布时间】:2023-03-14 17:39:01
【问题描述】:

我创建了我的表单,使用程序运行时它在标准尺寸下看起来很好,但是当我最大化表单时,组件会变得混乱。我将组件固定在左侧和右侧,但是在表格中间创建了一个巨大的间隙,我不知道如何修复它。在程序的“设计”视图中,我所有的组件都在试图填补中间的空白。我尝试对齐,锚定并在网上搜索了一段时间,但没有成功。有什么线索吗? 运行程序时的标准尺寸表格:

全屏表格,中间有巨大间隙:

【问题讨论】:

  • 您期望会发生什么?你认为它应该是什么样子而不是“巨大的中间差距”?您所展示的是预期行为,因此有助于了解您的想法。您是否正在尝试实现一个 UI,它可以保持所有字体和布局比例,但可以随窗口大小缩放所有内容
  • "我将组件固定在左右两侧" - 你是如何准确地固定它们的?哪个控件有哪些设置?如果某些控件仅锚定在左侧,而某些控件仅锚定在右侧,则您所显示的内容是有意义的。你能提供 DFM 吗?
  • 我希望它在展开时能够在面板上均匀缩放(不包括对齐的项目),类似于未最大化时的外观。我将两个最左边的按钮对齐到 alLeft,将最右边的按钮对齐到 alRight;这三个都用 [akLeft,akTop,akBottom] 锚定。之间的所有内容都以 [akTop,akRight] 为基础。
  • Anchor 不是这个意思。将控件锚定到右侧意味着它从右边缘停留在固定位置。当窗体调整大小并变宽时,右锚定控件会粘在右边缘并随之移动。这同样适用于左锚定控件。考虑从船上抛锚,这就是Anchor骆驼这个名字的来源。您想要的是锚定控件,这允许表单在调整大小时根据需要定位它们。
  • 当然有。你期望会发生什么?你要么锚定它们(在这种情况下,你最终会在中间有很大的间隙),或者你允许它们缩放(在这种情况下它们均匀分布)。您还期望什么其他行为?你认为应该发生什么?

标签: delphi firedac


【解决方案1】:

通过表单的OnResize 事件,您可以计算组件的widthleft 属性值以适应新的大小。您可以调整组件的宽度或分配组件之间的距离以获得您想要的外观。或者两者的结合。

如果表单的宽度变得太小,也可以将组件放在两行。或者使用滚动面板,以便用户可以滚动查看在给定宽度的情况下无法正确显示的内容。

所有这些都需要编码。零件可以使用面板完成并对齐面板。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-20
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 2013-12-20
    • 1970-01-01
    相关资源
    最近更新 更多