![]() |
Sortierreihenfolge Rectangles
ich habe unter Firemonkey ein TLayout Komponente. Dort habe ich mehrere TRectangle Elemente mit Align=Left. Diese sind mit 1 bis 7 durchnummeriert und auch so von links nach rechts angeordnet. Wenn ich nun einzelne hide (visible=false) und später wieder anzeige (visible=true), rutscht das rectangle nach rechts und sie sind nicht mehr in der richtigen Reihenfolge. Was kann ich machen, um die Reihenfolge beizubehalten?
|
AW: Sortierreihenfolge Rectangles
Versuche mal, die horizontale Position x auf deinen passenden Wert zu setzen, nachdem du visible auf true gesetzt hast.
Wir hatten Ähnliches mit dem Restoren der Position eines Splitters. |
AW: Sortierreihenfolge Rectangles
Das Problem passt prinzipiell zu dieser Frage mit der entsprechenden Antwort:
![]() |
AW: Sortierreihenfolge Rectangles
Liste der Anhänge anzeigen (Anzahl: 1)
alXxxx-Stacks funktionieren schon in der VCL nur bedingt. Die einzig dauerhafte Lösung, die ich gefunden habe, ist die Controls ineinander zu schachteln. Aber das geht natürlich nur, wenn deren Umrandungen nicht sichtbar sind. Siehe Anhang:
Code:
Das ist vom Design und auch vom Handling im Code deutlich aufwändiger, aber funktioniert immer.
* Panel1 ist alTop und liegt auf dem Formular (roter Rahmen, wird von Panel2 und Panel3 komplett verdeckt)
* |-- Panel2 ist alTop und liegt auf Panel1 * \-- Panel3 ist alClient und liegt auf Panel1 (blauer Rahmen, wird von Panel4 und Panel5 komplett verdeckt) * |- Panel4 ist alTop und liegt auf Panel3 * \- Panel5 ist alClient und liegt auf Panel3 |
AW: Sortierreihenfolge Rectangles
Ein Trick, der funktioniert, ist die Breite von dem auszublendenden TRectangle auf den Wert von Null zu setzen und wenn Du es später wieder sichtbar machen willst, wieder auf den vorherigen Wert zu setzen. Dadurch ändert sich die Reihenfolge nicht.
Wenn die Breite kein Standardwert ist, könntest Du Dir ihn in der "Tag" Eigenschaft des auszublendenden TRectangles zuvor merken und beim Wiederherstellen wieder verwenden. |
AW: Sortierreihenfolge Rectangles
Man kann die Rectangles auch manuell umsortieren, wenn man die
zuerst alle AlignLayouts auf Top stellt und dann nacheinander von oben nach unten, in der gewünschten Reihenfolge, auf MostTop danach dann wieder von hinten nach vorne zurück auf Top stellen ( dabei bleiben die Positionen erhalten ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz