![]() |
Application beenden, wärend Procedure
Hi,
wie beende ich meine Application, wärend eine Procedure ausgeführt wird? mein bisherigen versuche:
Delphi-Quellcode:
hab alle mal durchprobiert auch in Verbindung miteinander.
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin application.Terminate; application.Destroy; close; end; mfg gandime |
Re: Application beenden, wärend Procedure
Delphi-Quellcode:
Das darf natürlich nicht in CloseQuery drin stehen; dort solltest du wirklich nur prüfen, ob du CanClose auf true oder false setzen willst.
procedure Finity;
begin while true do begin Foo(); if ZeitZumSterben then begin Application.Terminate; //Beendet das Programm sobald möglich. Exit; //Verlässt die Prozedur und das Programm wird beendet. end; end; end; |
Re: Application beenden, wärend Procedure
Das hilft/funktioniert nicht, da das Prog in einer repeat-Schleife steckt wo es nicht raus kommt:
Delphi-Quellcode:
ich könnte natürlich überall folgendes hinzufügen:
repeat
bt_weiter.Enabled:=true; repeat application.ProcessMessages; sleep(10); until b_fertig=true; b_fertig:=false; until set_pop3=true;
Delphi-Quellcode:
Aber da habe ich Angst das etwas am pop3 ausgelöst wird was noch nicht gemacht werden soll wie z.B. eMail löschen oder sowas.
until (set_pop3=true) or (application.Terminated);
Das könnte man natürlich auch umgehen :-D
Delphi-Quellcode:
aber bei fast 10000 Zeilen Code habe ich nicht recht viel lust das alles nachzugucken und einzufügen ;-)
if application.terminated then
begin exit; end; |
Re: Application beenden, wärend Procedure
Auf was wartest du denn in dieser Schleife? b_fertig wird dort ja niemals true, das sieht aus wie eine Endlosschleife...
|
Re: Application beenden, wärend Procedure
Es wird normalerweise durch einen Buttonklick erfüllt.
Aber ich frage danach ob es möglich ist ohne das es in der Schleife eingetragen ist das Prog sofort zu schließen |
Re: Application beenden, wärend Procedure
Delphi-Quellcode:
:lol:
halt;
|
Re: Application beenden, wärend Procedure
genau das habe ich gesucht :-)
thx edit: gibt es auch eine Procedure um nur alle Schleifen abzubrechen und nicht das Prog auszuschalten? |
Re: Application beenden, wärend Procedure
Du kannst eine Exception erzeugen und diese bis zur WndProc durchreichen. (Wäre auch angebrachter anstatt "halt" zu verwenden)
|
Re: Application beenden, wärend Procedure
Zitat:
break: bricht eine Schliefe ab continue: macht mit dem nächsten Schleifendurchlauf weiter exit: verlässt die aktuelle Prozedur / Funktion usw. Noch was: Wenn Du nicht mit Threads arbeitest, kann sich das Programm nur jeweils in einer Schleife befinden. |
Re: Application beenden, wärend Procedure
ich habe aber zwei verschiedene schleifen:
Delphi-Quellcode:
repeat
bt_weiter.Enabled:=true; repeat application.ProcessMessages; sleep(10); until b_fertig=true; b_fertig:=false; until set_pop3=true;
Delphi-Quellcode:
das geht ja mit beak exit usw. nicht
procedure TForm1.bt_stopClick(Sender: TObject);
begin //hiermit will ich alle anderen Schleifen beenden end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 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