Einzelnen Beitrag anzeigen

CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Reihenfolge von zur Laufzeit erstellten Komponenten mit Align=alTop

  Alt 8. Jul 2011, 13:35
@shmia: Inwiefern wird das denn instabil?

Wie gesagt, was zur Designzeit so erstellt wird, klappt doch?

Oft genug habe ich sowohl eine TStatusbar als auch ein TPanel unten. Oder eine TToolbarund ein TPanel oben im Fenster. Und hatte damit nie Probleme. Vielmillionenfach genutzt, ohen daß sich je ein Kunde über falsch plazierte UI-Elemente beschwert hätte.

Ich gehe sogar noch einen Schritt weiter - wenn Du recht hättest, gäbe es keinen TSplitter! Denn den setzte ich beispielweise mit Align := alLeft zwischen ein Panel mit Align = alClient und einem weiteren mit ebenfalls Align = alLeft. Anders als als zweite Komponente mit identischen Align macht TSplitter gar keinen Sinn (Ausnahme: schaltet man das Panel mit alLeft auch unsichtbar und dann wieder sichtbar, ist die Reihenfolge tatsächlich vertauscht, das weiß man und kann es beim Ändern des Visible beachten und ändern).

Möchtest Du behaupten, daß Borland/CodeGear/Embarcadero den TSplitter als unsupported unstable feature mitliefert? Wohl kaum

Weitere Beispiele wären etwa TActionMainMenuBar plus TActionToolbar, die beide mit Align = alTop erzeugt werden und so zum Standard fast jedrn Anwendung mit TActionManager gehören dürften. Darf man, wenn man den TActionManager verwendet, nicht mehr Hauptmenü und Toolbar zusammen verwenden? Klingt für mich unglaubhaft.

Darüber hinaus stellst Du auch noch die Behauptung der maximal zwei Elemente auf. Ich kann Deine (meiner Meinung nach falsche) These ja vom Prinzip her verstehen, aber dann gäbe es doch immer noch mindestens 5 stabile Controls statt nur 2? alTop, alLeft, alRight und alBottom sind ja auch zusammen angewandt um ein Align = alClient immer noch "stabil".

Und ein Resize des Containers ist es doch gerade, was Align so wertvoll macht, nicht wo es Probleme verursacht?

@ChrisE: stimmt, LabeledEdits wäre ein halbiertes Problem, aber die mag ich irgendwie nicht

Align = alCustom habe ich auch schon verwendet, wirklich nötig war es bei mir nur in Fällen, wo ich alTop, alLeft und alBottom zusammen verwendet habe, und das Control mit alLeft über die komplette Höhe gehen sollte. Da "versagt" dann auch Align selbst bzw. das ist dann nicht mehr seine Aufgabe).

Von Hand zu plazieren und auf OnResize zu reagieren, oder AlignWithMargins zuverwenden, oder auch die Anchors (beides macht OnResize eigentlich recht überflüssig in meiner Erfahrung), sind natürlich Möglichkeiten, klar

Geändert von CCRDude ( 8. Jul 2011 um 13:41 Uhr)
  Mit Zitat antworten Zitat