![]() |
Problem mit PageControl/TabSheet
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Wissende,
ich möchte mir ein Wizard-Like-Programm bauen und verwende dazu eine PageControl mit TabSheets. So weit so gut. Wo ich jetzt ein Problem mit habe, ist zu erkennen, wann ich ein TabSheet verlasse und ein anderes öffne. Die "OnShow"- und "OnHide"-Ereignisse treten nämlich in "falscher" Reihenfolge auf: Angenommen ich bin auf TAB1 und wechsele zu TAB2, dann kommt zuerst das Ereignis "OnShow" von TAB2 und dann "OnHide" von TAB1!
Code:
Wenn ich nur die Reiter zum Umschalten benutze, dann würde es funktionieren, dann könnte ich die OnChanging- und OnChange-Ereignisse der PageControl benutzen:
Seite 2: OnShow
Seite 1: OnHide
Code:
Wenn ich aber - wie oben schon erwähnt - das Programm Wizard-like gestalten möchte und ich wechsele die Seiten mit "Weiter" bez. "Zurück", dann treten die "OnChang*"-Ereignisse nicht auf:
OnChanging, Seite 1
Seite 2: OnShow Seite 1: OnHide OnChange, Seite 2 Wer es selber testen möchte: Im Anhang ist ein kleines Projekt, mit dem man das Testen kann. Auch das auftreten der Ereignisse "OnEnter" und "OnExit" der PageControl sind unlogisch - kann auch mit dem anhägenden Programm getestet werden. Hat jemand eine Idee, wie man richtig abfangen kann, wenn eine Seite verlassen wird, bevor die nächste Seite betreten wird? |
Re: Problem mit PageControl/TabSheet
Zitat:
|
Re: Problem mit PageControl/TabSheet
Löse den Event doch manuell aus.
|
Re: Problem mit PageControl/TabSheet
Wenn, dann wäre es sinnvoll den dort ausgeführten Code in eigene Prozeduren auszulagern. Die könnte man dann von überall aufrufen. Ggf. gleich mit weiteren Parametern.
|
Re: Problem mit PageControl/TabSheet
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für Eure Meinungen.
Ich habe herausgefunden wie es funktioniert (Wenn man sowohl die Reiter als auch die Tasten "Weiter" und "Zurück" verwenden will): Einfach
Delphi-Quellcode:
aufrufen. Und schon werden die OnChang*-Ereignisse aufgerufen.
PageControl.SelectNextPage(True,False) // für Weiter
PageControl.SelectNextPage(False,False) // Zurück Beiliegend mein geändertes Testprogramm. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 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