Und alle Steuerelemente in ein Panel packen mit Margins.Right := 10; ?
Zum Beispiel. Aber der linke Abstand würde dann fehlen.
Für ein Control selbst sehe ich keine (einfache) Möglichkeit, herauszufinden, wo in der Positionierungssequenz es sich befindet.
Nach längerem Studium vom Delphi-Quelltext, ist mir aufgefallen dass alle Layout-Panel sich auf die CM_CONTROLLISTCHANGING Message verlassen und dann intern eine Liste verwalten.
Für ein Grid-Panel wäre dann z.B. die Zuordnung von Listen-Index zu Spalte/Zeile mit einer Art mod/div-Rechnung erledigt, als Pseudocode:
Code:
Row = Index div ColsPerRow;
Col = Index mod ColsPerRow;
Danke für die Antworten.
Ich habe mich entschieden in einem Descendant von TCustomControl das Layout zu übernehmen, analog zu TGridPanel und ähnlichen Steuerelementen.
Ist für meinem konkreten Fall wohl das Einfachste. Etwas schade dass die
VCL das nicht einfacher macht. Aber WPF und CSS sind da auch umständlich, auch wenn es da zumindest "dirty hacks" gibt.