AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Formular erst anzeigen, dann MessageDlg

Ein Thema von Timelesk · begonnen am 3. Feb 2007 · letzter Beitrag vom 3. Feb 2007
Antwort Antwort
Timelesk

Registriert seit: 24. Jul 2004
72 Beiträge
 
#1

Formular erst anzeigen, dann MessageDlg

  Alt 3. Feb 2007, 10:26
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
  Mit Zitat antworten Zitat
Timelesk

Registriert seit: 24. Jul 2004
72 Beiträge
 
#2

Re: Formular erst anzeigen, dann MessageDlg

  Alt 3. Feb 2007, 10:38
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:
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.
Somit erscheint erst das Formular und danach die Fehlermeldung! Genau wie ich es wollte.

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:
Die Methode Run enthält die Hauptbotschaftenschleife der Anwendung. Der Aufruf von Run kehrt erst zurück, wenn die Botschaftenschleife der Anwendung beendet wird.

gruß
Timelesk
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#3

Re: Formular erst anzeigen, dann MessageDlg

  Alt 3. Feb 2007, 10:58
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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Timelesk

Registriert seit: 24. Jul 2004
72 Beiträge
 
#4

Re: Formular erst anzeigen, dann MessageDlg

  Alt 3. Feb 2007, 11:04
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
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Formular erst anzeigen, dann MessageDlg

  Alt 3. Feb 2007, 11:06
Zitat:
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?
Es wartet die ganze Zeit auf Windowmessages und schickt sie an die entsprechenden Formulare/Handles.
Und wenn die Message WM_close kommt, beendet sich diese Funktion.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Timelesk

Registriert seit: 24. Jul 2004
72 Beiträge
 
#6

Re: Formular erst anzeigen, dann MessageDlg

  Alt 3. Feb 2007, 11:11
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 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