我想实现隐藏鼠标的效果。于是写出下面
界面上就一个 MainMenu1 没有别的了。
下面的y1为其中的一栏
procedure TForm1.Y1Click(Sender: TObject);
begin
Y1.Checked:= not Y1.Checked;
ShowCursor(Y1.Checked);
ShowMessage(BoolToStr(Y1.Checked));
end;
这个代码中,我最不理解的是 Y1.Checked:= not Y1.Checked;这里。我加了下面的ShowMessage(BoolToStr(Y1.Checked));
返回,看到值也有变化。可是鼠标就是不隐藏。为什么?于是又弄下面的例子又可以。
Y1.Checked:= false;
ShowCursor(Y1.Checked);
栏上不显示勾为隐藏鼠标 ShowMessage值为0. Y1.Checked:= True;
ShowCursor(Y1.Checked);
栏显示为选中状态 为显示鼠标 ShowMessage值为-1这里的Y1.Checked:= not Y1.Checked;到底怎么理解,为什么做不出想要的效果 ?
这个例子来自《精通delphi 5.0》 27-4 隐藏光标的设计
界面上就一个 MainMenu1 没有别的了。
下面的y1为其中的一栏
procedure TForm1.Y1Click(Sender: TObject);
begin
Y1.Checked:= not Y1.Checked;
ShowCursor(Y1.Checked);
ShowMessage(BoolToStr(Y1.Checked));
end;
这个代码中,我最不理解的是 Y1.Checked:= not Y1.Checked;这里。我加了下面的ShowMessage(BoolToStr(Y1.Checked));
返回,看到值也有变化。可是鼠标就是不隐藏。为什么?于是又弄下面的例子又可以。
Y1.Checked:= false;
ShowCursor(Y1.Checked);
栏上不显示勾为隐藏鼠标 ShowMessage值为0. Y1.Checked:= True;
ShowCursor(Y1.Checked);
栏显示为选中状态 为显示鼠标 ShowMessage值为-1这里的Y1.Checked:= not Y1.Checked;到底怎么理解,为什么做不出想要的效果 ?
这个例子来自《精通delphi 5.0》 27-4 隐藏光标的设计
界面上一个MainMenu1,然后一个列Y1.
procedure TForm1.Y1Click(Sender: TObject);
begin
Y1.Checked:= not Y1.Checked;
ShowCursor(Y1.Checked);
ShowMessage(BoolToStr(Y1.Checked));
end;
还是这个代码,我又重新写了一遍。还是不行。
下面是全部的pasunit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.N3Click(Sender: TObject);
begin
close;
end;procedure TForm1.N2Click(Sender: TObject);
begin
N2.Checked:= not N2.Checked;
ShowCursor(N2.Checked);
end;end.
Y1.Checked:= not Y1.Checked;
ShowCursor(Y1.Checked);
换成
Y1.checked:=not y1.checked;
showcursor(not Y1.checked);
这样就可以了。ShowCursor是通过一个计数变量来实现的,第一次为True。
谢谢各位。