ich will auch einmal Gutes tun und meine neue Komponente im Forum hinterlegen...
Das ist eine TScrollBox, die alle enthaltenen Controls automatisch "optimal" anordnet und dabei einige Optionen anbietet:
TScrollBoxFlow = class(TScrollBox)
procedure Flow;
- aktualisiert die Anordnungen
- wird automatisch bei Resize und Propertyänderungen durchgeführt
property FlowSort;
- legt fest, wie die Controls zuvor sortiert werden
- das beste Ergebnis (geringste Zwischenräume) ist mit ControlBreite-Absteigend zu erreichen
- das führt allerdings dazu, dass die größten Komponenten alle möglichst oben links stehen
property FlowMargin;
- legt den freien Bereich um jedes Control fest
globale Variable TestMode:
- ermöglicht die schrittweise Anzeige der Berechnungen
Die Arbeitsweise:
- die Anordnung erfolgt derzeit immer vertikal
- eine Erweiterung auf horizontale Anordnung wäre aber auch leicht möglich
- die Komponenten werden nacheinander möglichst weit oben und links positioniert
- ist ein Platz gefunden, wird dieser festgelegt
- eine rekursive Suche oder ein nachträglier Tausch von positionierten Komponenten zwecks einer evtl. Optiomierung erfolgt nicht
- (die Ableitung von TsScrollBox (AlphaSkins) statt von TScrollBox ist problemlos möglich)