这是我在 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 的高度始终保持较高的值。
是否有任何解决方案或任何其他替代方法?,谢谢问候。