为Application.OnMessage事件建立一个句柄,检测中断屏幕保护的条件是否满足。 procedure Detect(var Msg:TMsg;var Handled:boolean); 在implementation中加入以下代码: procedure Detect(var Msg:TMsg;var Handled:boolean); Var Done:boolean; begin Done:=false; if (Msg.message=WM_KEYDOWN or Msg.message=WM_MOUSEMOVE) then done:=true; if done then begin close; end; end; ---- 在为窗口的OnShow事件加上处理函数。在函数中加上以下代码: procedure FormShow(Sender: TObject); begin Application.OnMessage:=Detect; // ShowCursor(false); end;
上面这段程序在 if (Msg.message=WM_KEYDOWN or Msg.message=WM_MOUSEMOVE) then 处提示错误[Error] Unit1.pas(30): Incompatible types,不知为何,还请大家帮帮忙!
if (Msg.message = WM_KEYDOWN) or (Msg.message = WM_MOUSEMOVE) then done:= True;我的方法 var Form1: TForm1; Flag: Integer;procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin Flag:= 0; end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Flag:= 0; end;procedure TForm1.Timer1Timer(Sender: TObject); begin Inc(Flag,200); if Flag>=1000 then Close; end;
procedure Detect(var Msg:TMsg;var Handled:boolean);
在implementation中加入以下代码:
procedure Detect(var Msg:TMsg;var Handled:boolean);
Var
Done:boolean;
begin
Done:=false;
if (Msg.message=WM_KEYDOWN or
Msg.message=WM_MOUSEMOVE) then
done:=true;
if done then
begin
close;
end;
end;
---- 在为窗口的OnShow事件加上处理函数。在函数中加上以下代码:
procedure FormShow(Sender: TObject);
begin
Application.OnMessage:=Detect;
// ShowCursor(false);
end;
if (Msg.message=WM_KEYDOWN or Msg.message=WM_MOUSEMOVE) then
处提示错误[Error] Unit1.pas(30): Incompatible types,不知为何,还请大家帮帮忙!
done:= True;我的方法
var
Form1: TForm1;
Flag: Integer;procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
Flag:= 0;
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Flag:= 0;
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
Inc(Flag,200);
if Flag>=1000 then
Close;
end;