Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   .NET-Framework (managed code) (https://www.delphipraxis.net/79-net-framework-managed-code/)
-   -   C# Panelreihenfolge (https://www.delphipraxis.net/168617-panelreihenfolge.html)

Cogito 31. Mai 2012 11:34

Panelreihenfolge
 
Hallo zusammen,

ich habe in einer Form 5 panels. Wenn ich diese alle visible = false setze und später dann wieder auf true, hat er mir die Reihenfolge dieser panels vertauscht. Für mich sollte die Reihenfolge aber genau so sein wie ich sie eingefügt habe. Kann mir jemand sagen wie man das sicher stellen kann?

WM_CLOSE 31. Mai 2012 11:38

AW: Panelreihenfolge
 
Panel.ZIndex
EDIT: Mein Fehler, was ich gemeint habe ist Control.SendToBack()/Front,
aber du meinst die vertikale Reihenfolge?

EDIT2: http://social.msdn.microsoft.com/For...c-e13d43558626

Cogito 31. Mai 2012 11:56

AW: Panelreihenfolge
 
Zitat:

Zitat von WM_CLOSE (Beitrag 1168907)
Panel.ZIndex

ZIndex??? Was soll das sein, eine Property? Kann ich nicht finden.
Ich vergaß noch zu erwähnen, das alle 5 Panels als Dock-Property "Top" eingestellt haben, deshalb ist die Reihenfolge so verwirrend!

himitsu 31. Mai 2012 12:15

AW: Panelreihenfolge
 
Left/Right = X-Richtung
Top/Bottom = Y-Richtung
Vor/Hinter = Z-Richtung / Z-Index, welchen man z.B. über BringToFront/SendToBack verändern kann.

Ansonsten entspricht es erstmal der Erstellungsreihenfolge (Neuestes ist vorne).
Wobei die Reihenfolge, wie man etwas ausgerichtet hat dann die Erstellungsreihenfolge überschreibt. (was zuerst oben angedockt wurde, ist ganz oben, egal ob sichtbar oder nicht)

CCRDude 31. Mai 2012 12:18

AW: Panelreihenfolge
 
Musst Sie halt in umgekehrer Reihenfolge wieder sichtbar machen; alternativ Top := -1 o.ä. in gewollter Reihenfolge nach dem Sichtbarmachen. Wenn es dynamisch sein soll, halt rückwärts über Controls/ControlCount durchlaufen.

Cogito 31. Mai 2012 12:56

AW: Panelreihenfolge
 
Zitat:

Zitat von himitsu (Beitrag 1168917)
Left/Right = X-Richtung
Top/Bottom = Y-Richtung
Vor/Hinter = Z-Richtung / Z-Index, welchen man z.B. über BringToFront/SendToBack verändern kann.

Ansonsten entspricht es erstmal der Erstellungsreihenfolge (Neuestes ist vorne).
Wobei die Reihenfolge, wie man etwas ausgerichtet hat dann die Erstellungsreihenfolge überschreibt. (was zuerst oben angedockt wurde, ist ganz oben, egal ob sichtbar oder nicht)

Ja die Panels sind in y-Richtung angeordnet auf die volle Breite des ParentPanels. Die Erstellungsreihenfolge habe ich bereits geändert und diese umgekehrt wieder sichtbar gemacht. Das ist aber sehr unzuverlässig, denn manchmal schiebt er doch das letzte irgendwo dazwischen ein. Was ist denn also jetzt eine zuverlässige Methode die Dinger in der richtigen Reihenfolge sichtbar zu machen (nicht alle sind immer jederzeit sichtbar, aber die Reihenfolge sollte trotzdem stimmen)? Kann mal jemand ein Code Snippet rüberwerfen?

Uwe Raabe 31. Mai 2012 12:56

AW: Panelreihenfolge
 
Da gibt's doch was bei StackOverflow: Delphi: How to programmatically adjust visual ordering of components with align = alTop

implementation 31. Mai 2012 13:41

AW: Panelreihenfolge
 
Darf ich nochmal zusammenfassen, was du willst? Also du hast ein Parent-Control und möchtest darauf n Panels haben, mit voller Breite, aber untereinander? Dann sollte ChildSizing das Property deiner Wahl sein, statt Align.

Cogito 31. Mai 2012 14:53

AW: Panelreihenfolge
 
Moment mal, kann es sein dass ich hier falsch bin? Ich arbeite mit Visual Studio... Ich habe nur gesehen dass es sich um .NET Framework handelt, aber nicht um die IDE. Sorry...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz