【发布时间】:2017-05-20 10:37:05
【问题描述】:
如果我这样做了
RectangleCont.beginUpdate;
myText1 := TText.Create(RectangleCont);
myText1.parent := RectangleCont;
myText1.text := 'a long text';
myText1.Position.x := RectangleCont.width - myText1.width; // 150px for exemple
myText1.align := TalignLayout.right;
myText2 := TText.Create(RectangleCont);
myText2.parent := RectangleCont;
myText2.text := 'OK';
myText2.Position.x := RectangleCont.width - myText1.width - myText2.width; // 50px for exemple
myText2.align := TalignLayout.right;
myText3 := TText.Create(RectangleCont);
myText3.parent := RectangleCont;
myText3.text := 'OK';
myText3.Position.x := RectangleCont.width - myText1.width - myText2.width - myText3.width; // 0px for exemple
myText3.align := TalignLayout.right;
RectangleCont.EndUpdate;
我将使用<myText1><myText3><myText2> 而不是<myText3><myText2><myText1>
注意:如果我在myText1.text 中输入较短的文本,那么它可以正常工作。
有什么解决办法吗?
【问题讨论】:
-
尝试使用
myText1.align := TAlignLayout.MostRight -
同样设置位置是没有意义的,因为自动对齐会覆盖它。
-
是的,我知道 TAlignLayout.MostRight,但是如果我有 3 个文本怎么办? myText1、myText2 和 myText3 ?通常情况下(我认为是这种情况,否则在delphi中是一个大错误)在正常的世界设置位置一定不是没有意义的,因为必须针对控件的原始位置进行对齐
-
好的,FMX 有一些不正确的逻辑,确实依赖于原始 x 位置加上控制宽度。看看 FMX.Types AlignObjects 过程 - 特别是 InsertBefore 函数。如果您无法正确对齐所有这些控件,则只能手动设置或使用其他容器,因此您始终只有两个必须对齐的处于同一级别的控件。
-
谢谢,是的,我认为在东京这比在柏林还要糟糕:( quality.embarcadero.com/browse/RSP-17172 ...
标签: delphi firemonkey