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 Exit ?! (https://www.delphipraxis.net/87561-exit.html)

-187- 2. Mär 2007 10:18


Exit ?!
 
Delphi-Quellcode:
  Procedure SearchingFiles(Filename:String);
begin
  if SearchForFile(GetSysDir+'\', Filename, APathFound) then
    WriteLn(myFile,':: Available: '+GetSysDir+'\'+Filename) else
    WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename);
    end;
Ich möchte das dass Programm schließt wenn die Datei nich vorhanden ist. Also sowas wie

Delphi-Quellcode:
else
    WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename) AND EXIT;
Wie mach ich das , ich möchte nich nochmal extra eine if File Exists durchführen..

Steve 2. Mär 2007 10:23

Re: Exit ?!
 
Hi,

Du fasst die Befehle einfach in einen Block zusammen:
Delphi-Quellcode:
if xyz then abc else
begin
  aktion1;
  aktion2;
end;

Gruß
Stephan

smudo 2. Mär 2007 10:24

Re: Exit ?!
 
Vielleicht hilft raise Exception?
Oder habe ich die Frage falsch verstanden?

Salomon 2. Mär 2007 10:25

Re: Exit ?!
 
Evtl.
Delphi-Quellcode:
application.Terminate;
Bin mir aber nicht sicher ob das ohne VCL funktioniert.

-187- 2. Mär 2007 10:26

Re: Exit ?!
 
Naja das hab ich schon probiert.. Mein Programm schreibt auch die Zeile
Delphi-Quellcode:
WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename);
Aber der Exit funktioniert nicht :shock: :shock:


Delphi-Quellcode:
  Procedure SearchingFiles(Filename:String);
begin
  if SearchForFile(GetSysDir+'\', Filename, APathFound) then
    WriteLn(myFile,':: Available: '+GetSysDir+'\'+Filename) else
    WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename);
    Exit;
    end;

alcaeus 2. Mär 2007 10:28

Re: Exit ?!
 
Exit beendet nicht das Programm. Im Mainform kannst du einfach Close() machen, oder du beendest die Anwendung auf die "harte" Tour mit Application.Close(). Allerdings solltest du vorher noch einen Hinweis anzeigen, warum sich das Programm beendet ;)

Greetz
alcaeus

sirius 2. Mär 2007 10:30

Re: Exit ?!
 
halt


Edit: Das lltest du aber eigentlich vermeiden solche Befehle der Ablaufsteuerung. Manchmal kommt man zwar ohne nicht mehr aus. Aber bei größeren Programmen siehst du einfach nicht mehr durch, wenn du zuviele exits und halts und etc. drin hast.

Steve 2. Mär 2007 10:31

Re: Exit ?!
 
edit 1: Ups, mehrfach verlesen :oops:

edit 27:
Es kommen wohl zweierlei Dinge zusammen:
Mit Exit verlaesst Du die aktuelle Routine. Das wuerde aber sowieso passieren, da exit der letzte Befehl dieser Routine ist.
Ausserdem wird der Befehl unabhaengig davon ausgefuehrt, was die if-Abfrage liefert, da es nicht in einem Block zusammengefasst ist.

Eine Loesungsmoeglichkeit waere auch folgende (fuer Konsolenanwendung):
Delphi-Quellcode:
//...

function SearchingFiles(Filename:String) : boolean; // function statt procedure
begin
  result := SearchForFile(GetSysDir+'\', Filename, APathFound);
  if result then
    WriteLn(myFile,':: Available: '+GetSysDir+'\'+Filename) else
    WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename);
end;


begin
  //Programmstart
  //...
  IF NOT SearchForFile THEN Exit; // in diesem Fall wird die "aeusserste" Routine , naemlich das Programm selbst, abgebrochen
  // weiterer Programmcode
end.
Andere Möglichkeit:
Delphi-Quellcode:
//...

procedure SearchingFiles(Filename:String);
begin
  result := SearchForFile(GetSysDir+'\', Filename, APathFound);
  if result then
    WriteLn(myFile,':: Available: '+GetSysDir+'\'+Filename) else
  begin //else-Teil zusammenfassen
    WriteLn(myFile,':: Missing: '+GetSysDir+'\'+Filename);
    Halt; // Programm beenden
  end;
end;

-187- 2. Mär 2007 10:36

Re: Exit ?!
 
Ja es handelt sich um eine Konsolen Anwendung.
Application.Close() <- Undefinierter Bezeichner Application

Ich dachte immer das geht mit Exit :roteyes:

-187- 3. Mär 2007 06:55

Re: Exit ?!
 
*push* Keiner eine Idee?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.
Seite 1 von 2  1 2      

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