时隐时现的鼠标

 

    有些时候,我们可能想将鼠标隐藏起来,就像绝大多数游戏开场时播放的动画那样。其它一些情况,当鼠标影响观赏效果时,也可以将鼠标隐藏起来。笔者设计如下小程序即可实现在某一段时间内用户没有任何输入时自动隐藏鼠标,一旦用户输入任意键便立即重显鼠标的功能。下面给出用Delphi 实现这一功能的方法。
  添加一个Ti mer 组件,将Ti mer 组件的Interval 属性设置为2000(即延时2秒钟),程序段如下:
unit Unit1;
interface
uses Windows ,Messages ,SysUtils ,Classes ,Graphics ,
Controls ,Forms ,Dialogs ,StdCtrls ,ExtCtrls ;
type TForm1=class(TForm)
Ti mer1:TTi mer ;
procedure FormMouseDown(Sender :TObject ;
Button :TMouseButton ;
Shift :TShiftState ;X,Y :Integer);
procedure FormMouseMove(Sender :TObject ;
Shift :TShiftState ;X,Y :Integer);
procedure FormKeyDown(Sender :TObject ;
var Key:Word ;Shift :TShiftState);
procedure FormCreate(Sender :TObject);
procedure Ti mer1Ti mer(Sender :TObject);
private{Private declarations }
public
{Public declarations }
end ;
var Form1:TForm1;
MouseHide :Boolean ;
i mplementation
{$R *.DFM}
procedure DoMouse ;
begin if MouseHide then
begin Screen .Cursor :=crDefault ;{恢复鼠标}
MouseHide :=False ;
end
else Form1.Ti mer1.Enabled :=True ;
end ;procedure TForm1.FormMouseDown(Sender :TObject ;
Button :TMouseButton ;
Shift :TShiftState ;X,Y :Integer);
begin DoMouse ;
end ;procedure TForm1.FormMouseMove(Sender :TObject ;
Shift :TShiftState ;X,Y :Integer);
begin DoMouse ;
end ;procedure TForm1.FormKeyDown(Sender :TObject ;
var Key:Word ;Shift :TShiftState);
begin DoMouse ;
end ;procedure TForm1.FormCreate(Sender :TObject);
begin MouseHide :=True ;{初始化}
end ;procedure TForm1.Ti mer1Ti mer(Sender :TObject);
begin MouseHide :=True ;
Screen .Cursor :=crNone ;{隐藏鼠标}
{以下这一行可以不要,但会使程序效率降低}
Ti mer1.Enabled :=False ;
end ;end .
  以上程序将实现与屏保程序类似的功能。当鼠标移动、按下或键盘有键按下时,立即恢复鼠标显示。有兴趣的朋友可以自己修改一下,以实现更多常见的鼠标隐藏和恢复功能。(湖北江立刘燕里)