Search code examples
iosdelphialignmentfiremonkeydelphi-xe6

Delphi XE6 firemonkey component alignment problems when added at runtime


i wanto dynamic add 5 TLable in my iOS app.

like this

Procedure Form1.FormCreate(Sender: TObject)
var
  I: Integer;
begin
  for I := 1 to 5 do
  begin
    with TLabel.Create(Self) do
    begin
      Parent := self;
      Align := TAlignLayout.Top;
      Height := 50;
      Text := IntToStr(I);
    end;
  end;
end;

i think the order is 12345, but I get 15432.

What can I do to get the desired results?


Solution

  • You must give a chance to the aligning algorithm to do what you want.

    procedure TForm1.FormCreate(Sender: TObject);
    var
      I: Integer;
    begin
      for I := 1 to 5 do
      begin
        with TLabel.Create(Self) do
        begin
          Parent := self;
          Align := TAlignLayout.alTop;
          Height := 50;
          Position.Y := I*Height; //add this line
          Text := IntToStr(I);
        end;
      end;
    end;