Hallo,
das Prinzip ist einfach:
Delphi-Quellcode:
function LabelToPoint(lbl: TLabel; index: Integer): TPoint;
const
MarginLeft = 20;
MarginTop = 30;
LabelCols = 9;
VertGap = 8;
HorzGap = 8;
begin
Result := Point(
MarginLeft - HorzGap + (index mod LabelCols) * (lbl.Width + HorzGap),
MarginTop - VertGap + (index div LabelCols) * (lbl.Height + VertGap)
);
end;
Die Konstanten kannst du an deine Bedürfnisse anpassen. Das Ergebnis liefert die Top und Left für Label[i] in Y und X - wenn ich keinen Fehler eingebaut habe.
Grüße vom marabu