Delphi下TLabel鼠标MouseEnter、MouseLeave更改颜色失灵
2015-12-01 17:27
513 查看
在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
我先看一看三幅图:
这是最初的效果
这是鼠标进入的效果
这是鼠标移出的效果
下面给出代码:
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
相关文章推荐
- 简易对象垃圾回收框架 for Delphi
- Delphi编译的程序如何获取管理员权限
- 用delphi创建数据库
- Delphi 模式窗体返回值ModalResult的使用方法及注意事项
- Delphi 的接口机制——接口操作的编译器实现过程(2)
- Delphi 的接口机制——接口操作的编译器实现过程(1)
- Delphi 7下使用VT实现树型列表结合控件
- delphi 读写文本
- Delphi XE10写的转换图像文件大小,用于生成安卓和IOS的小图标和启动画面
- Delphi中TStringList类常用属性方法详解
- Delphi 窗体无边框全屏不遮挡任务栏-最完美的解决方法
- Delphi中的fieldbyname和fieldvalues有什么区别?
- Delphi2007 在Win10 下运行报错 Assertion failure
- delphi 获取两个颜色差值
- Delphi 7下使用VT实现树型列表结合控件
- delphi 获取颜色值的RGB
- delphi 获取图片某一像素的颜色值
- delphi常用快捷键(我自己经常使用的)
- delphi平方开方
- delphi 生成网卡MAC地址