Nachdem ich an ursprünglicher Stelle auf anderes Alignment umgestiegen bin, kam ich heute wieder drauf, und habe das Problem dank diesem Thread nochmal überdacht. Insbesondere danke für den letzten Link zu Stackoverflow!
Mit reversem Setzen des Top auf 0 oder negative Werte konnte ich zwar nichts erreichen, wohl aber mit folgendem kleinen Helfer:
Delphi-Quellcode:
procedure ArrangeTControlTopOrder(AControls: array of TControl);
var
i: integer;
begin
if Length(AControls) = 0 then begin
Exit;
end;
AControls[0].Top := 0;
for i := 1 to Pred(Length(AControls)) do begin
AControls[i].Top := AControls[i - 1].Top + AControls[i - 1].Height;
end;
end;