AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Application beenden, wärend Procedure
Thema durchsuchen
Ansicht
Themen-Optionen

Application beenden, wärend Procedure

Ein Thema von gandime · begonnen am 7. Jan 2008 · letzter Beitrag vom 8. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
gandime
(Gast)

n/a Beiträge
 
#1

Application beenden, wärend Procedure

  Alt 7. Jan 2008, 00:11
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
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Application beenden, wärend Procedure

  Alt 7. Jan 2008, 02:59
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.
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#3

Re: Application beenden, wärend Procedure

  Alt 7. Jan 2008, 03:31
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:

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

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
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Application beenden, wärend Procedure

  Alt 7. Jan 2008, 03:41
Auf was wartest du denn in dieser Schleife? b_fertig wird dort ja niemals true, das sieht aus wie eine Endlosschleife...
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#5

Re: Application beenden, wärend Procedure

  Alt 7. Jan 2008, 04:38
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
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Application beenden, wärend Procedure

  Alt 7. Jan 2008, 06:26
halt;
Frank Dumont
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#7

Re: Application beenden, wärend Procedure

  Alt 7. Jan 2008, 07:36
genau das habe ich gesucht
thx

edit:
gibt es auch eine Procedure um nur alle Schleifen abzubrechen und nicht das Prog auszuschalten?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

Re: Application beenden, wärend Procedure

  Alt 7. Jan 2008, 07:55
Du kannst eine Exception erzeugen und diese bis zur WndProc durchreichen. (Wäre auch angebrachter anstatt "halt" zu verwenden)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Application beenden, wärend Procedure

  Alt 7. Jan 2008, 07:58
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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#10

Re: Application beenden, wärend Procedure

  Alt 7. Jan 2008, 08:12
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:28 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