mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-29 09:43:03 +02:00
+ handle closing events
This commit is contained in:
parent
0ae5ded638
commit
c0054f06cd
@ -62,6 +62,25 @@ procedure SystemEventHandler(var ir:INPUT_RECORD);
|
|||||||
var
|
var
|
||||||
Xsize, YSize : longint;
|
Xsize, YSize : longint;
|
||||||
|
|
||||||
|
function HandleConsoleCtrl(typ : dword) : BOOL; stdcall;
|
||||||
|
var
|
||||||
|
SE : TSystemEvent;
|
||||||
|
begin
|
||||||
|
HandleConsoleCtrl:=false;
|
||||||
|
case typ of
|
||||||
|
CTRL_CLOSE_EVENT,
|
||||||
|
CTRL_LOGOFF_EVENT,
|
||||||
|
CTRL_SHUTDOWN_EVENT :
|
||||||
|
begin
|
||||||
|
SE.typ:=SysClose;
|
||||||
|
SE.CloseTyp:=typ;
|
||||||
|
PutSystemEvent(SE);
|
||||||
|
HandleConsoleCtrl:=true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure InitSystemMsg;
|
procedure InitSystemMsg;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -86,6 +105,7 @@ begin
|
|||||||
InitializeCriticalSection(ChangeSystemEvents);
|
InitializeCriticalSection(ChangeSystemEvents);
|
||||||
SetResizeEventHandler(@SystemEventHandler);
|
SetResizeEventHandler(@SystemEventHandler);
|
||||||
SetFocusEventHandler(@SystemEventHandler);
|
SetFocusEventHandler(@SystemEventHandler);
|
||||||
|
SetConsoleCtrlHandler(@HandleConsoleCtrl,true);
|
||||||
SystemEventActive:=true;
|
SystemEventActive:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -104,6 +124,7 @@ begin
|
|||||||
SetResizeEventHandler(nil);
|
SetResizeEventHandler(nil);
|
||||||
SetFocusEventHandler(nil);
|
SetFocusEventHandler(nil);
|
||||||
DeleteCriticalSection(ChangeSystemEvents);
|
DeleteCriticalSection(ChangeSystemEvents);
|
||||||
|
SetConsoleCtrlHandler(@HandleConsoleCtrl,false);
|
||||||
SystemEventActive:=false;
|
SystemEventActive:=false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -170,7 +191,10 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2002-06-06 20:32:34 pierre
|
Revision 1.3 2003-01-31 11:01:50 pierre
|
||||||
|
+ handle closing events
|
||||||
|
|
||||||
|
Revision 1.2 2002/06/06 20:32:34 pierre
|
||||||
* check console window size changes
|
* check console window size changes
|
||||||
|
|
||||||
Revision 1.1 2002/05/21 11:59:57 pierre
|
Revision 1.1 2002/05/21 11:59:57 pierre
|
||||||
|
@ -62,6 +62,25 @@ procedure SystemEventHandler(var ir:INPUT_RECORD);
|
|||||||
var
|
var
|
||||||
Xsize, YSize : longint;
|
Xsize, YSize : longint;
|
||||||
|
|
||||||
|
function HandleConsoleCtrl(typ : dword) : BOOL; stdcall;
|
||||||
|
var
|
||||||
|
SE : TSystemEvent;
|
||||||
|
begin
|
||||||
|
HandleConsoleCtrl:=false;
|
||||||
|
case typ of
|
||||||
|
CTRL_CLOSE_EVENT,
|
||||||
|
CTRL_LOGOFF_EVENT,
|
||||||
|
CTRL_SHUTDOWN_EVENT :
|
||||||
|
begin
|
||||||
|
SE.typ:=SysClose;
|
||||||
|
SE.CloseTyp:=typ;
|
||||||
|
PutSystemEvent(SE);
|
||||||
|
HandleConsoleCtrl:=true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure InitSystemMsg;
|
procedure InitSystemMsg;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -86,6 +105,7 @@ begin
|
|||||||
InitializeCriticalSection(ChangeSystemEvents);
|
InitializeCriticalSection(ChangeSystemEvents);
|
||||||
SetResizeEventHandler(@SystemEventHandler);
|
SetResizeEventHandler(@SystemEventHandler);
|
||||||
SetFocusEventHandler(@SystemEventHandler);
|
SetFocusEventHandler(@SystemEventHandler);
|
||||||
|
SetConsoleCtrlHandler(@HandleConsoleCtrl,true);
|
||||||
SystemEventActive:=true;
|
SystemEventActive:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -104,6 +124,7 @@ begin
|
|||||||
SetResizeEventHandler(nil);
|
SetResizeEventHandler(nil);
|
||||||
SetFocusEventHandler(nil);
|
SetFocusEventHandler(nil);
|
||||||
DeleteCriticalSection(ChangeSystemEvents);
|
DeleteCriticalSection(ChangeSystemEvents);
|
||||||
|
SetConsoleCtrlHandler(@HandleConsoleCtrl,false);
|
||||||
SystemEventActive:=false;
|
SystemEventActive:=false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -170,7 +191,10 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2002-06-06 20:32:34 pierre
|
Revision 1.3 2003-01-31 11:01:50 pierre
|
||||||
|
+ handle closing events
|
||||||
|
|
||||||
|
Revision 1.2 2002/06/06 20:32:34 pierre
|
||||||
* check console window size changes
|
* check console window size changes
|
||||||
|
|
||||||
Revision 1.1 2002/05/21 11:59:57 pierre
|
Revision 1.1 2002/05/21 11:59:57 pierre
|
||||||
|
Loading…
Reference in New Issue
Block a user