【发布时间】:2015-04-15 03:43:26
【问题描述】:
这是我在 Firemonkey 中的示例代码;
var
f: integer;
Label1: TLabel;
MyStringArray: TArray<String>;
Panel1: TPanel;
Layout1: TLayout;
begin
Layout1.Align := TAlignLayout.Client;
MyStringArray := ['aa','bb','cc','dd','ee','ff'];
f:= 10;
Layout1.BeginUpdate;
for i := 0 to length(MyStringArray) - 1 do
begin
Label1 := TLabel.Create(Self);
Label1.Name := 'Label' + i.ToString;
Label1.Text := 'Label_' + MyStringArray[i];
Label1.Position.Y := f;
Label1.Align := TAlignLayout.Top;
Label1.Parent := Layout1;
inc(f, 15);
end;
Layout1.EndUpdate;
end;
MyStringArray 是一个动态数组,其元素数量并不总是相同,因此我根据标签数量调整 TLayout (Layout1) 内容的 TPanel (Panel1) 大小;
Panel1.Height := Layout1.ChildrenRect.Height
当 Layout1 中的标签数量增加时,这可以正常工作,但是当标签数量较少时,Layout1.ChildrenRect.Height 没有效果并且不缩小它,Layout1 的高度始终保持较高的值。
是否有任何解决方案或任何其他替代方法?谢谢 问候。
【问题讨论】:
-
您是说释放/删除控件后 ChildrenRect 是错误的吗?如果是这样,您如何释放它们以及在什么平台上释放它们?
-
你好 Mike,我每次调用
Layout1.ChildrenRect.Height之前都使用Layout1.DeleteChildren释放/删除控件,在 Windows 和 Android 上进行了测试。
标签: layout resize height firemonkey tpanel