鼠標停留在一個form上面5分鐘不動后觸一個事件,怎麼寫啊?(50分)

  • 主题发起人 主题发起人 ygj9712
  • 开始时间 开始时间
Y

ygj9712

Unregistered / Unconfirmed
GUEST, unregistred user!
鼠標停留在一個form上面5分鐘不動后觸一個事件,怎麼寫啊?
 
可以用定时器计数,鼠标异动清0。到达5分触发事件
 
同意楼上,同时可以加入判断当前鼠标是否在此窗体位置范围内,以及焦点是否是当前窗体
 
给不给分,源码
 
定时器不是很准....

用消息,放个ApplicationEvents控件,然后设置个全局变量,在ApplicationEventsIdle事件里写代码:
//全局变量
var
idletime:dword;

procedure Tform1.ApplicationEventsIdle(Sender: TObject;
var Done: Boolean);
var
tmpm:dword;
begin
if Active and Visible then begin
tmpm:=GetTickCount;
if integer(tmpm-idletime)>=0 then begin
//如果要下面这句话,就每过5分钟触发一次,如果只想触发一次,则再设个全局变量记录是否已经触发过
idletime:=tmpm+300000;
//执行你要做的
end;
end;
end;
 
在OnMouseMove里寫上Timer1.Enabled:=true;
在Timer1.Timer事件里寫上你要做的事情,時間設成5分鐘。
在Mouse離開的時候寫上Timer1.Enabled:=false;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
823
import
I
后退
顶部