Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Application beenden, wärend Procedure (https://www.delphipraxis.net/106193-application-beenden-waerend-procedure.html)

DeddyH 7. Jan 2008 08:45

Re: Application beenden, wärend Procedure
 
Vielleicht so in der Art:
Delphi-Quellcode:
abgebrochen := false;
repeat
  bt_weiter.Enabled:=true;
  repeat
    application.ProcessMessages;
    if abgebrochen then break; //verlässt die innere Schleife
    sleep(10);
  until b_fertig;
  b_fertig:=false;
until set_pop3 or abgebrochen; //verlässt ggf. die äußere Schleife

rawsoul 7. Jan 2008 13:56

Re: Application beenden, wärend Procedure
 
Zitat:

Zitat von gandime
genau das habe ich gesucht :-)

War allerdings eher als schlechter Scherz zu verstehen, da dies eine "brutalo"-Möglichkeit ist. Soweit ich weiß hinterlässt es auch meist Memoryleaks.

shmia 7. Jan 2008 17:20

Re: Application beenden, wärend Procedure
 
Zitat:

Zitat von gandime
Delphi-Quellcode:
if application.terminated then
begin
  exit;
end;
aber bei fast 10000 Zeilen Code habe ich nicht recht viel lust das alles nachzugucken und einzufügen ;-)

Das wäre aber genau die richtige Lösung.
Der obige Code muss an strategisch richtigen Stellen in deinem Programm eingebaut werden.
Dabei helfen folgende Überlegungen:
Dein Programm sollte spätestens nach 1,5 Sekunden reagieren, nach dem der Benutzer es beendet hat.
Wenn es also 2 oder mehr verschachtelte Schleifen gibt, dann reicht es meistens aus, obigen Code
in die äussere Schleife zu packen.
Die Variable Application.Terminated kann sich nur ändern, wenn zuvor Application.ProcessMessages aufgerufen wurde !
Also ergibt sich logisch folgende Konstruktion:
Delphi-Quellcode:
application.ProcessMessages;
if application.Terminated then exit;

gandime 8. Jan 2008 03:04

Re: Application beenden, wärend Procedure
 
Ok dann muss ich mich damit abfinden das ich an allen Endlosschleifen application.terminated hinzufügen muss...


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 Uhr.
Seite 2 von 2     12   

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