Hi,
ich habe da mal 'n Problem. Ich versuche gerade bei einer Konsolenanwendung das
Schliessen per X-Button der Titelleiste abzufangen.
Der Quelltext schaut do aus:
Delphi-Quellcode:
program Test;
{$APPTYPE CONSOLE}
uses
Windows;
var
AppTerminated: Boolean;
function ConCtrlHandler(dwCtrlType: DWORD): Bool; stdcall;
begin
Result := True;
{case dwCtrlType of
// CTRL+C signal was received, either from keyboard input
CTRL_C_EVENT:;
// CTRL+BREAK signal was received, either from keyboard input
CTRL_BREAK_EVENT:;
// --> system sends to all processes attached to a console when the user closes the console
CTRL_CLOSE_EVENT:;
// system sends to all console processes when a user is logging off.
CTRL_LOGOFF_EVENT:;
// system sends to all console processes when the system is shutting down
CTRL_SHUTDOWN_EVENT:;
end }
AppTerminated := True;
end;
begin
AppTerminated := False;
SetConsoleCtrlHandler(@ConCtrlHandler, True);
while not AppTerminated do
begin
Write('Working...'#32);
sleep(100);
end;
writeln(#10#13);
writeln('...und Tschuess!');
sleep(500);
end.
Per CTRL+C und CTRL+BREAK funktioniert das so wie es soll.
Schliesse ich die App, bei der Entwicklung in der
IDE (D6
PE),
per X-Button hängt sich die
IDE (bzw. der Debugger ?) auf.
Wenn ich die App ohne
IDE starte und mit dem X-Button beende,
kommt es nicht bei "...und Tschuess!" an.
Irgend welche Ideen ?