刚开始测试 FireMonkey,找不到制作动态大小/定位组件的方法。
VCL 有 Anchor 属性,FM 没有。
有人看到我错过的东西
更新:
简单锚定在 FM 中不可用。您必须创建 TLayouts 并对齐它们,然后将控件放在面板内以使其“粘贴”。如果您使用旧版本的 Builder 或 Delphi,这将与我们过去使用 TPanel 的方式相同。
刚开始测试 FireMonkey,找不到制作动态大小/定位组件的方法。
VCL 有 Anchor 属性,FM 没有。
有人看到我错过的东西
更新:
简单锚定在 FM 中不可用。您必须创建 TLayouts 并对齐它们,然后将控件放在面板内以使其“粘贴”。如果您使用旧版本的 Builder 或 Delphi,这将与我们过去使用 TPanel 的方式相同。
这是您的问题的答案。VCL 中的 anchors 属性显然已被 Margins 和 Padding 取代(出于性能考虑),我在 XE2 wiki ( http://docwiki.embarcadero.com/RADStudio/en/FireMonkey_Application_Design ) 找到了一些文档。我怀疑是否会在以后放置锚。要在右侧表单底部锚定两个按钮(确定和取消),请执行以下操作。有关确定和取消按钮,请参见下图。
放置一个与表格底部对齐的小面板,例如大约 40 高。设置底部面板上的“边距”以创建一个较小的空间来放置按钮,确保将按钮对齐设置为 alRight。例如,窗体的右边缘和最右边的按钮之间的间隙有 15 的边距。顶部和底部边距设置为 12。这锚定了最右边的按钮。
“填充”与边距相反,填充将空间置于控件之外。在最右边的按钮上,我在左侧添加了 20 的填充,这将是两个按钮之间的空间。对于第一个左侧的第二个按钮,我们只需将 align 属性设置为 alRight,无需调整填充或边距。
将多个 TLayout 组件拖放到表单上,并根据需要配置它们的对齐属性。将其他组件放入这些布局中,并相对于它们所包含的 TLayout 设置它们的对齐属性。似乎对我有用......
这是您正在寻找的答案:FMX 控件没有锚点。
我想这将是“下一个版本”的功能。
快速浏览一下 align 属性会发现比我们以前的 Delphi 版本有更多的选择:
这不能解决你的问题(至少部分)。
我记得很长一段时间都只是使用嵌套panel
s和align
布局东西。
您可以使用 LiveBindings 和表达式来根据父控件设置控件的属性,尽管这需要大量工作。
否则,使用边距和填充(如 HTML/CSS)。