Delphi下TLabel鼠标MouseEnter、MouseLeave更改颜色失灵

        在Delphi 7下,如果想在鼠标MouseEnter、MouseLeave的时候改变TLabel自身的颜色,很多人可能会采用 Label.Color := clRed;这样的方式来实现,我当初也是一样,结果无论鼠标怎么移动Tlabel都不会改变自身的颜色,但是通过Object Inspecter却可以设置TLabel的颜色,但是在它的MouseEnter、MouseLeave直接给Color属性赋值,TLabel的颜色却无法跟随鼠标的进入和移出而更改自身的颜色,经过跟踪发现TLabel的color属性原来根本就没有Color属性,而这个Color属性却是来自TControl的。

    我先看一看三幅图:

这是最初的效果

这是鼠标进入的效果

这是鼠标移出的效果


下面给出代码:
procedure TForm1.Label1MouseEnter(Sender: TObject);
begin
  //Label1.Canvas.Pen.Color := $0080BFFF;
  with Label3 do
  begin
    if Color <> $0080BFFF then
    begin
      Color := $0080BFFF;
      ParentColor := False;
      Perform(CM_COLORCHANGED, 0, 0);
    end;
  end;
end;

procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
  with Label3 do
  begin
    if Color <> clWindow then
    begin
      Color := clWindow;
      ParentColor := False;
      Perform(CM_COLORCHANGED, 0, 0);
    end;
  end;
end;


上一篇: Delphi在StatusBar上绘制ProgressBar
下一篇: Delphi之TDrawGrid绘制
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: Delphi下TLabel 鼠标 MouseEnter MouseLeave 颜色
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭