![]() |
Panelreheinfolge einhalten.
Hallo,
habe in einer Form mehrere Panels untereinander. In jedem dieser Panels sind verschiedene Datensätze. Je nach dem ob in diesen Panels Datensätze vorhanden sind oder nicht, sind diese sichtbar oder nicht. Wenn Datensätze in einem Panel vorhanden sind, dann wird entsprechendes Button markiert(Farbänderung) und Panel ist sichtbar. Das funktioniert auch gut, aber die Reiehnfolge wird nicht immer eingehalten. Hier das Besp:
Delphi-Quellcode:
Wie kann ich die Panelreihenfolge besser platzieren. Es sind ca. 20 Stck.
procedure TFrameArtikel.Panellinksreihenfolge;
begin If (ButtonHaftEtikett.Color = clLime) then begin PanelArtikel.Align := alTop; PanelArtikel.Visible := True; end else begin PanelArtikel.Visible := false; end; If ButtonDienstleistung.Color = clLime Then begin PanelDienstleistung.Align := alTop; PanelDienstleistung.Visible := True; end else begin PanelDienstleistung.Visible := false; end; If ButtonNummerierung.Color = clLime Then begin PanelNummerierung.Align := alTop; PanelNummerierung.Visible := True; end else begin PanelNummerierung.Visible := false; end; usw. Danke, Luckner |
AW: Panelreheinfolge einhalten.
|
AW: Panelreheinfolge einhalten.
Habe vergessen noch zu erwähnen, das beim 1-ten Durchlauf die Reihenfolge immer eingehalten wird. Erst bei weiterem Aufruf dieser Routine werden die Panels durcheinander gewirbelt.
|
AW: Panelreheinfolge einhalten.
Natürlich werden sie durcheinandergewirbelt, wenn sie mal sichtbar, mal unsichtbar sind. Folge einfach Uwes Link.
Sherlock |
AW: Panelreheinfolge einhalten.
Ich verwende bei solchen Dingen immer die
Panel1.SetBounds(x1, y1, dx, dy); Einstellung. Je nachdem, ob sichtbar oder nicht erhoehe ich eine Integer Variable um den Wert der Panel1.Height, dem ich den Wert y1 hinzufuege. Will aber dem professionellen Tip von Herrn Raabe nicht vorgreifen. MfG, Terence |
AW: Panelreheinfolge einhalten.
Habe mir den Tip von Uwe Raabe angesehen, aber keine wahre Lösung gefunden. Es sind mehrere Ansätze vorgeschlagen, die jedoch nicht zur einem soliden Weg führen müssen. Bevor ich meine Sortieroutine aufrufe, setze ich ich erstmal alle Panels aud visible := false. Was ich nicht verstehe, nach welchen Kriterium entscheiden Delphi in welcher Reihenfolge die Panels sortiert werden. In meiner Routine geht es doch immer in einer festen Reihenfolge. Wan springt ein Panel vor das Andere und wann bleibt es dahinter?
Luckner |
AW: Panelreheinfolge einhalten.
Hallo tcoman, wenn ich Das so machen würde, müßte ich erst herausfinden, welches von den Panels davor sichtbar sind oder nicht. Bei ca. 20 Panels ist das schon ein zeitl. Aufwand.
|
AW: Panelreheinfolge einhalten.
Setze die Höhe auf 0?
Tabstop nicht vergessen auszuschalten. Ist ein Panel mal Invisible wird es am unteren Ende angereiht. Es hilft auch nichts wenn du die Panels von unten nach oben invisible setzt, sobald du einmal eines auslässt reiht es sich unten an. Zitat:
|
AW: Panelreheinfolge einhalten.
Hallo MichaelT, werde mal Dein Tipp mit der Höhe ausprobieren. Wenn ich alle Panals erst invisible mache und da in der richtigen Reihenfolge onTop und visible mache, müsste die an die richtigen Stelle springen? aber ich probiere erst mal die Höhe auf 0 setzen.
Luckner |
AW: Panelreheinfolge einhalten.
Hallo MichaelT, leider funktioniert es auch nicht. Es juckt Delphi nicht, ob die Panelhöhe mal auf 0 ist.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 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