Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

gandime 7. Jan 2008 00:11


Application beenden, wärend Procedure
 
Hi,
wie beende ich meine Application, wärend eine Procedure ausgeführt wird?

mein bisherigen versuche:
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  application.Terminate;
  application.Destroy;
  close;
end;
hab alle mal durchprobiert auch in Verbindung miteinander.


mfg
gandime

Dani 7. Jan 2008 02:59

Re: Application beenden, wärend Procedure
 
Delphi-Quellcode:
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;
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.

gandime 7. Jan 2008 03:31

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:
repeat
bt_weiter.Enabled:=true;
  repeat
    application.ProcessMessages;
    sleep(10);
  until b_fertig=true;
  b_fertig:=false;
until set_pop3=true;
ich könnte natürlich überall folgendes hinzufügen:

Delphi-Quellcode:
until (set_pop3=true) or (application.Terminated);
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.

Das könnte man natürlich auch umgehen :-D

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 ;-)

Dani 7. Jan 2008 03:41

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...

gandime 7. Jan 2008 04:38

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

rawsoul 7. Jan 2008 06:26

Re: Application beenden, wärend Procedure
 
Delphi-Quellcode:
halt;
:lol:

gandime 7. Jan 2008 07:36

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?

sirius 7. Jan 2008 07:55

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)

RavenIV 7. Jan 2008 07:58

Re: Application beenden, wärend Procedure
 
Zitat:

Zitat von gandime
gibt es auch eine Procedure um nur alle Schleifen abzubrechen und nicht das Prog auszuschalten?

Schau Dir mal in der Delphi-Hilfe die Kapitel "Schleifen" und "Ablaufsteuerung" an.

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.

gandime 7. Jan 2008 08:12

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:
procedure TForm1.bt_stopClick(Sender: TObject);
begin
  //hiermit will ich alle anderen Schleifen beenden
end;
das geht ja mit beak exit usw. nicht


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 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