7

刚开始测试 FireMonkey,找不到制作动态大小/定位组件的方法。

VCL 有 Anchor 属性,FM 没有。

有人看到我错过的东西

更新:

简单锚定在 FM 中不可用。您必须创建 TLayouts 并对齐它们,然后将控件放在面板内以使其“粘贴”。如果您使用旧版本的 Builder 或 Delphi,这将与我们过去使用 TPanel 的方式相同。

4

5 回答 5

11

这是您的问题的答案。VCL 中的 anchors 属性显然已被 Margins 和 Padding 取代(出于性能考虑),我在 XE2 wiki ( http://docwiki.embarcadero.com/RADStudio/en/FireMonkey_Application_Design ) 找到了一些文档。我怀疑是否会在以后放置锚。要在右侧表单底部锚定两个按钮(确定和取消),请执行以下操作。有关确定和取消按钮,请参见下图。

在此处输入图像描述

放置一个与表格底部对齐的小面板,例如大约 40 高。设置底部面板上的“边距”以创建一个较小的空间来放置按钮,确保将按钮对齐设置为 alRight。例如,窗体的右边缘和最右边的按钮之间的间隙有 15 的边距。顶部和底部边距设置为 12。这锚定了最右边的按钮。

“填充”与边距相反,填充将空间置于控件之外。在最右边的按钮上,我在左侧添加了 20 的填充,这将是两个按钮之间的空间。对于第一个左侧的第二个按钮,我们只需将 align 属性设置为 alRight,无需调整填充或边距。

于 2011-09-02T17:24:08.140 回答
7

将多个 TLayout 组件拖放到表单上,并根据需要配置它们的对齐属性。将其他组件放入这些布局中,并相对于它们所包含的 TLayout 设置它们的对齐属性。似乎对我有用......

于 2011-09-02T16:37:10.870 回答
5

这是您正在寻找的答案:FMX 控件没有锚点。

我想这将是“下一个版本”的功能。

于 2011-09-02T15:34:47.373 回答
1

快速浏览一下 align 属性会发现比我们以前的 Delphi 版本有更多的选择:

在此处输入图像描述

这不能解决你的问题(至少部分)。
我记得很长一段时间都只是使用嵌套panels和align布局东西。

于 2011-09-02T17:17:14.030 回答
0

您可以使用 LiveBindings 和表达式来根据父控件设置控件的属性,尽管这需要大量工作。

否则,使用边距和填充(如 HTML/CSS)。

于 2011-10-03T22:28:25.413 回答