![]() |
Formular erst anzeigen, dann MessageDlg
Hallo,
wenn ich ihn der Procedure TFormular.FormShow ein Showmessage aufrufen lasse, wird dieses ja bekanntlich angezeigt, bevor das Formular sichtbar wird. Wie kann ich erst das Formular sichtbar machen und danach den MessageDlg / die Showmessage aufrufen? Es muss beim Start überprüft werden, ob die ausgewählte Datei + zugehörige Dateien existieren. Dementsprechend soll eine Fehlermeldung erscheinen. Als einzige Lösungsmöglichkeit fällt mir derzeit ein Timer ein, der von FormShow auf TRUE gesetzt wird und mit Intervall 100 eine Variable prüft, welche bei TRUE den Aufruf der Showmessage hervorruft. Aber gibt es da keine "schönere" Lösung? Vielen Dank gruß Timelesk |
Re: Formular erst anzeigen, dann MessageDlg
Ich bin's nochmal!
Gerade eben hab ich ein neues Projekt geladen und dabei ist mir die Projekt.dpr ins Auge gefallen. Ich habe folgendes ausprobiert:
Delphi-Quellcode:
Somit erscheint erst das Formular und danach die Fehlermeldung! Genau wie ich es wollte.
program MeinProgramm;
{...} begin Application.CreateForm(TFormular, Formular); Formular.Show; //Zeige Hauptformular Formular.loadFiles; //Prüfe, ob die benötigten Dateien existieren Application.Run; //Starte Programm ? end. Nun würde mich aber noch interessieren, warum das Application.Run an letzter Stelle stehen darf? Die Delphi-Hilfe half mir dabei leider nicht sehr viel weiter: Zitat:
gruß Timelesk |
Re: Formular erst anzeigen, dann MessageDlg
Hallo,
ich verstehe Deine Frage nicht ganz, vor allem nicht, warum Du das "darf" so betonst. Entscheidend ist: Du darfst verschiedene Maßnahmen vorher, nachher und nebenbei organisieren. (Beispiel: Prüfung, ob das Programm bereits aktiv ist, und ggf. Abbruch.) Gruß Jürgen |
Re: Formular erst anzeigen, dann MessageDlg
Hi,
mich hat es gewundert, dass ich Formulare aufrufen kann, bevor Application.Run ausgeführt wird. Warum soll Application.Run überhaupt ausgeführt werden? Das Programm funktioniert doch eigentlich auch so. Was erledigt Application.Run so wichtiges, dass es aufgerufen werden muss, aber dennoch für die Funktionalität nicht so bedeutend ist, dass egal ist, wann es aufgerufen wird? Bzw. egal ist es nicht! Application.Run muss als letzte Anweisung in der DPR stehen, da alle nachfolgenden Anweisungen nicht mehr ausgeführt werden. Danke gruß Timelesk |
Re: Formular erst anzeigen, dann MessageDlg
Zitat:
Und wenn die Message WM_close kommt, beendet sich diese Funktion. |
Re: Formular erst anzeigen, dann MessageDlg
Hi sirius,
das ist doch mal ne gute Erklärung (im Gegensatz zur Delphi-Hilfe...) Also startet Application.Run die WindowMessages-Überprüfung, welche automatisch mit dem Beenden des Programmes gestoppt wird! Vielen Dank für die schnellen Antworten. gruß Lukas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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