![]() |
Aktion ausführen direkt nach Application.Run
Hallo,
ich möchte in meinem Programm ein Anmeldefenster anzeigen. Dieses soll aber erst erscheinen, wenn die Anwendung richtig läuft, also, nachdem Application.Run gestartet wurde. Bisher führe ich die Anmeldung vorher aus. Nach der Anmeldung kann es sein, dass direkt eine Datei geladen wird. Schlägt hier etwas fehl, rasselt die Exception komplett durch und die Anwendung beendet sich. Ist nicht so schön. Bevor jetzt jemand kommt und mir erzählt, dass ich doch die Exceptions abfangen soll: Davon gibt's 'ne ganze Menge. Ich kann nicht alle abfangen. Wie schaffe ich es also, eine Methode auszuführen, direkt nachdem Application.Run gestartet wurde? Gibt es da einen Event? Ich könnte natürlich einfach einen Timer verwenden, aber die Idee gefällt mir eigentlich nicht so sehr. Gruß xaromz |
Re: Aktion ausführen direkt nach Application.Run
Wie wäre es im OnCreate oder OnShow-Event deines Hauptformulares?
|
Re: Aktion ausführen direkt nach Application.Run
Zitat:
Zitat:
|
Re: Aktion ausführen direkt nach Application.Run
Zitat:
Warum kannst Du nicht alle Exceptions abfangen? Mit
Delphi-Quellcode:
sollte eigentlich alles erwischt werden. Zumal Du die Fehler auch nach .run noch bekommen solltest.
try
... except ... end; Ansonsten fällt mir nur Application.OnActivate ein. Dort müsstest Du aber einen mehrfachen Aufruf Deiner Funktion abfangen. |
Re: Aktion ausführen direkt nach Application.Run
Zitat:
|
Re: Aktion ausführen direkt nach Application.Run
Hi,
ich setzte in solchen Fällen Application.OnIdle z.B. im Constructor des MainForms auf eine Methode. Diese startet damit erst, wenn das Mainform fertig gezeichnet ist. In der Methode wird dann Application.OnIdle wieder auf nil gesetzt und der Code ausgeführt. Cu, Frank |
Re: Aktion ausführen direkt nach Application.Run
Hallo,
Zitat:
Zitat:
Zitat:
Zitat:
- Dateioperationen können schiefgehen. - Ich lade unbekannte Dateien. Da können falsche Daten drin sein. - Ich benutze fremde Bibliotheken. Keine Ahnung, was da alles drin passiert. - Ich lade aus einer Datenbank. Noch mehr Fehlerquellen. - Das Ganze natürlich übers Netzwerk/Internet. Es gibt also eine riesige Anzahl an Fehlerquellen. Wenn jetzt aber die Netzwekverbindung nicht klappt, reicht mir eine Exceptionmeldung völlig aus, damit der Anwender weiß, was passiert ist. Dann soll sich aber nicht das Programm verabschieden. @dataspider: Das hört sich gut an. Gruß xaromz |
Re: Aktion ausführen direkt nach Application.Run
Zitat:
Application.Run ist ja die Hauptschleife des Programms. Du willst das Anmelde-Fenster also innerhalb dieser Schleife ausführen? Dann mußt du wohl eine eigne Application-Klasse erzeugen und dort die Run-Methode überladen. Das Application-Objekt kennt auch einen onException-Event. |
Re: Aktion ausführen direkt nach Application.Run
Zitat:
Zitat:
Die Arbeit wird man sich also machen müssen, alle Exceptions einzeln abzufangen, bzw. zumindest den Exception-Classname anzeigen. Da hilft es auch nicht, den Code nach Application.Run zu verschieben. |
Re: Aktion ausführen direkt nach Application.Run
Hallo.
In meinen Anwendungen, welche auf Datenbanken zugreifen, muss die Anmeldung aus Sicherheitsgründen erfolgen, noch bevor ein Datenmodul oder gar die MainForm instanziiert wurde. Nur so als Denkanstoß. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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 by Thomas Breitkreuz