procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
(Sender as Tlabel).Color:=clyellow;
end;procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
(Sender as Tlabel).Color:=clred;
end;这样是没什么效果,如何才能实现得了?多谢.
Y: Integer);
begin
(Sender as Tlabel).Color:=clyellow;
end;procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
(Sender as Tlabel).Color:=clred;
end;这样是没什么效果,如何才能实现得了?多谢.
Y: Integer);
begin
//label1.Color:=clRed; //Label1的背景变红
Label1.Font.Color:=clRed; //字体变红
end;procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
//Label1.Color:=clWhite; //Label1的背景变白
Label1.Font.Color:=clWhite;//字体变白
end;
变白写在label的onmouseleave或者form的onmounsemove事件都可以
也就是说下面的写法都是对的:procedure TForm1.Label1MouseEnter(Sender: TObject);
begin
Label1.Color:=clRed;
end;
procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
Label1.Color:=clWhite;
end;--------------------------------------
procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Label1.Color:=clRed;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Label1.Color=clRed then Label1.Color:=clWhite;
end;一共四种组合方法,其中推荐的是onenter和onleave
我知道“写在mousemove事件里,可以实现,但不是最好的”,因为onEnter和OnLeave是标准答案,而onmove只是实现的方法一种而已,但你说的“你移动鼠标太快了就看出来了”,我用下面的代码试了试,效果是一样的,却不知你说的是什么问题?
另外你说“最好的方法是自己加一个事件,然后写代码”我也不同意,因为正解是写在Label的onEnter和OnLeave事件里procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Label1.Color:=clRed;
end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Label1.Color=clRed then Label1.Color:=clBlue;
end;