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 Konsole beenden (https://www.delphipraxis.net/29706-konsole-beenden.html)

Quick_silver 13. Sep 2004 16:04


Konsole beenden
 
Blöde frage aber:
Wie beende ich ne Consolenanwendung vorzeitig? Application.Destory gibt nen error wieder das er irgendwas mit dem Spreicher nicht lesen kann.

Luckie 13. Sep 2004 16:19

Re: Konsole beenden
 
So:
Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

begin
  { TODO -oUser -cConsole Main : Insert code here }
  Readln;
  exit;
end.

SleepyMaster 13. Sep 2004 16:20

Re: Konsole beenden
 
Glaube mit halt;

Luckie 13. Sep 2004 16:23

Re: Konsole beenden
 
Delphi-Referenz durchsuchenhalt ginge wohl auch, aber da steht in der Hilfe:
Zitat:

Halt performs an abnormal termination of a program and returns to the operating system.
Delphi-Referenz durchsuchenExit hingegen verläßt die aktuelle Prozedur / Funktion. Und wenn du das Hauptprogramm verläßt, bekommt automatisch das System wieder die Kontrolle.

SleepyMaster 13. Sep 2004 16:29

Re: Konsole beenden
 
Naja, aber was wenn er es nicht aus der Hauptprocedure machen will??

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure KA;
begin
  exit;
//halt;
end;

begin
  KA;
  Readln;
end.
Oder aus nem anderen Thread aus? Da kann man dann doch nur das Halt verwenden oder aber TerminateProcess.

Quick_silver 13. Sep 2004 16:30

Re: Konsole beenden
 
Ich weiss neeur thrad wäre besser aber nochmal hier ne kurze frage:
wie kann ich eine Zeile zurück springen. Also die letzte Zeile überschreiben?
Writeln macht ne neue Zeile
Write addiert

Gibt es irgendwas was die Zeile neu schreibt?

Chewie 13. Sep 2004 16:34

Re: Konsole beenden
 
Zitat:

Zitat von Quick_silver
Ich weiss neeur thrad wäre besser aber nochmal hier ne kurze frage:
wie kann ich eine Zeile zurück springen. Also die letzte Zeile überschreiben?
Writeln macht ne neue Zeile
Write addiert

Gibt es irgendwas was die Zeile neu schreibt?

Mach mal lieber einen neuen Thread auf, die Frage lässt sich nicht mit einem Satz beantworten.

Luckie 13. Sep 2004 17:36

Re: Konsole beenden
 
@Sleepymaster: Etwas mehr Phantasie bitte:
Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure Foo;
begin
  Readln;
  exit;
end;

begin
  { TODO -oUser -cConsole Main : Insert code here }
  Foo;
  exit;
end.

SleepyMaster 13. Sep 2004 19:16

Re: Konsole beenden
 
Und was wenn in der Foo entschieden wird, ob das Programm beendet werden soll oder nicht???

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure Foo;
var
  s: string;
begin
  Readln(s);
  if s = 'STOP' then
    halt;
end;

begin
  Foo;
  Writeln('Laeuft noch');
  Readln;
end.
Ja, man könnte dann bei Foo anstelle einer Procedure eine Funktion nutzen, die zurückliefert ob das Programmbeendet werden soll oder nicht, nur wenn man was anderes über die Funktion zurückgeben will, dann wird irgendwann der Aufwand zu groß!

alcaeus 13. Sep 2004 19:19

Re: Konsole beenden
 
Hi SleepyMaster,

beendest du jedes Delphi-Programm auch mit Application.Terminate oder mit KillProcess?
Wenn eine Funktion nötig ist, um dies abzufragen dann muss eben eine Funktion ran. Jeder der mal Turbo Pascal programmiert haben wird dies noch kennen. Ich sehe eigentlich nicht das Problem exit zu verwenden und das Programm sauber zu beenden als das Programm mit Halt zu beenden und sich sozusagen die Knarre an die Schläfe zu halten und abzudrücken. :roll:

Greetz
alcaeus


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:19 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf