注册 登录
编程论坛 Delphi论坛

请教一个小程序

wuyunshan 发布于 2005-12-30 11:34, 624 次点击

就是当鼠标放在LABEL上的时候字变成红色鼠标不在LABEL上的时候字是原来的颜色,我做了当鼠标在LABEL上的时候只能变成红色但是鼠标不在LABEL上的时候它还是红色的!怎么才能鼠标放上去是红色不放上去是系统默认的颜色呢?

6 回复
#2
ysp_19842006-01-05 03:53

var
Form1: TForm1;
Mycolor: Tcolor;
implementation

{$R *.dfm}

procedure TForm1.formMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssleft in shift then
with label1 do
begin
if (X>left) and(X<(left+width))and (Y>top)
and(Y<(top+height)) then
begin
label1.Font.Color:=clred;
end
else
begin
label1.Font.Color:=Mycolor;
end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
Mycolor: Tcolor;
begin
Mycolor:= label1.Font.Color;
end;

end.
你试试,是不是你要求的。

#3
ysp_19842006-01-05 04:09

上面的procedure TForm1.FormCreate(Sender: TObject);
应该用下面的这个.


procedure TForm1.FormCreate(Sender: TObject);
begin
Mycolor:= label1.Font.Color;
end;

#4
wuyunshan2006-01-08 18:02
我怎么用不起来啊?
#5
wuyunshan2006-01-08 18:03
不过还是谢谢好心人
#6
pyrolater2006-01-11 00:58
只需加上以下消息及消息函数:
procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
with label1 do
begin
if ((x > 0) and (x < width)) and ((y > 0) and (y < height)) then
begin
font.Color := clRed;
end;
end;
end;
#7
pyrolater2006-01-11 14:36

前面的改一下更简单:
procedure TForm1.formMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
label1.Font.Color := myColor;
end;

1