Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Splashscreen - Anwendung schließen (https://www.delphipraxis.net/98221-splashscreen-anwendung-schliessen.html)

Svenkan 23. Aug 2007 12:03


Splashscreen - Anwendung schließen
 
Hey!
Ich habe eine Passwortabfrage zum Starten des Programms eingebaut, welche ggf. beim Start während des Splash-Screens angezeigt wird.
Wird diese nun per Klick auf 'Abbrechen' verweigert, soll das komplette Programm geschlossen werden.
Ich habs schon mit FreeAndNil, .Close, .Free versucht, aber nichts hat geholfen. Die Hauptform wird aber trotzdem geöffnet.

Gollum 23. Aug 2007 12:30

Re: Splashscreen - Anwendung schließen
 
Hallo,

evtl. hilft dir Application.Terminate weiter.

messie 23. Aug 2007 12:32

Re: Splashscreen - Anwendung schließen
 
Oder der Holzhammer:
Delphi-Quellcode:
HALT;
Grüße, Messie

Svenkan 23. Aug 2007 12:33

Re: Splashscreen - Anwendung schließen
 
Jep, danke. ;)

Die Muhkuh 23. Aug 2007 13:00

Re: Splashscreen - Anwendung schließen
 
Wobei man halt nicht verwenden sollte...

shmia 23. Aug 2007 14:53

Re: Splashscreen - Anwendung schließen
 
Zitat:

Zitat von Gollum
evtl. hilft dir Application.Terminate weiter.

Das ist die richtige Methode.
Aber die Anwendung läuft trotzdem zunächst mal weiter.
Um nicht unnötig Zeit zu Vertrödeln sollte man in jedes .FormCreate() folgendes einbauen:
Delphi-Quellcode:
procedure TForm5.FormCreate(Sender: TObject);
begin
   if Application.Terminated then Exit; // <==
   Fxxx := Txxx.Create;
   ....
end;
Natürlich nur, wenn FormCreate schon vorhanden ist, und dort auch etwas gearbeitet wird.

Man kann auch direkt in der Projektdatei eingreifen:
Delphi-Quellcode:
  PasswordForm.ShowModal;
  if Application.Terminated then Exit; // <==
   
  Application.CreateForm(TForm42, Form42);
  Application.CreateForm(TForm66, Form66);
  ...
  Application.Run;

Svenkan 23. Aug 2007 22:34

Re: Splashscreen - Anwendung schließen
 
Zitat:

Zitat von Die Muhkuh
Wobei man halt nicht verwenden sollte...

Weil?

Dezipaitor 23. Aug 2007 22:57

Re: Splashscreen - Anwendung schließen
 
ist halt nicht die einzige funktion, um einen Rückgabewert an den Aufruferprozess zu setzen?

Svenkan 23. Aug 2007 23:01

Re: Splashscreen - Anwendung schließen
 
Ja mhm.., aber wo liegt denn der Vorteil von shmia's Methode gegenüber messie's?

Dezipaitor 23. Aug 2007 23:15

Re: Splashscreen - Anwendung schließen
 
Zitat:

Zitat von Svenkan
Ja mhm.., aber wo liegt denn der Vorteil von shmia's Methode gegenüber messie's?

Mit Application.Terminate wird die Windows Nachrichtenschleife noch korrekt beendet und vieles QuitNachrichten werden noch vorher gesendet.
Wenn dann alles freigegeben wurde, dann wird aus der Methode TApplication.Run gesprungen und man ist wieder im Hauptprogramm. Danach kann
man natürlich halt(x) aufrufen. Wenn man das nicht macht, wird sozusagen halt(0) aufgerufen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:29 Uhr.
Seite 1 von 2  1 2      

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