zoukankan      html  css  js  c++  java
  • 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;

    http://www.lsworks.net/article/44.html

  • 相关阅读:
    NOIP2013 花匠解题报告
    (3) 深入理解SELinux SEAndroid(第三部分
    (2) 深入理解SELinux SEAndroid(第二部分)
    (1) 深入理解SELinux SEAndroid(第一部分)
    SELinux深入理解
    SELinux策略语言--类型强制(编写TE规则)
    Android 6.0中SELinux的TE简介
    8250_fintek
    run "setprop ctrl.start wpa_supplicant" manually
    AOSP Nougat
  • 原文地址:https://www.cnblogs.com/findumars/p/5010747.html
Copyright © 2011-2022 走看看