ExitProc/de

From Lazarus wiki
Revision as of 18:27, 24 April 2018 by Mathias (talk | contribs) (Created page with "{{Translate}} =ExitProc= '''ExitProc''', kann man eine Procedure zuweisen, welche bei Programm-Ende aufgerufen wird.<br> Auch bei Beendigungen durch eine Laufzeitfehler.<br><...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Template:Translate

ExitProc

ExitProc, kann man eine Procedure zuweisen, welche bei Programm-Ende aufgerufen wird.
Auch bei Beendigungen durch eine Laufzeitfehler.

Es wird empfohlen die alte ExitProc zu sichern, und dies bei der neuen ExitProc wieder aufzurufen.

Beispiel

In diesem Beispiel, wird bewusst eine Datei geöffnet, welche es nicht gibt.

program Project1;

var
  OldExitProc: Pointer;

  procedure Ende;
  begin
    WriteLn('Das ist das Ende');
    if ExitCode = 2 then begin
      WriteLn('Datei nicht gefunden');
    end else begin
      WriteLn('Fehler: ', ExitCode);
    end;
    ExitProc := OldExitProc;
  end;

var
  f: file;

begin
  // Alte ExitProc sichern.
  OldExitProc := ExitProc;

  // Neue ExitProc zuweisen.
  ExitProc := @Ende;

  // Eine Datei öffnen, welche es nicht gibt.
  Assign(f, 'abc.txt');

  // Dies löst einen Laufzeitfehler 2 aus.
  Reset(f);
end.

Mit erzwungenem Ende

Wen man ein Programm-Ende mit Halt() erzwingt, wird ExitProc aufgerufen.
In diesem Beispiel hat dann ExitCode 123.

  Halt(123);

Autor: Mathias