HELP~~~~~~~~~~~~关于鼠标移动!

hahah 2000-02-20 03:40:00
让鼠标移动到组件上时组件的文字变色,离开这个组件时
就变回原来的颜色。
我用ONMOUSEMOVE时,要把其它所有组件的都要写一段代
码,太繁了,

请问有什么方法可以用很少的代码就能达到?
...全文
272 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sess 2000-02-23
  • 打赏
  • 举报
回复
捕捉窗口(application.message)的WM_MOUSEHOVER和WM_MOUSELEAVE两条消息,然后用is 判断
Lin 2000-02-22
  • 打赏
  • 举报
回复
1、自己写一个组件,不过我有现成的;
2、WM_MOUSEHOVER和WM_MOUSELEAVE两条消息用过没有?希望对你有所帮助。
huiwsey 2000-02-21
  • 打赏
  • 举报
回复
我平时用的一个笨办法,先给一个组件写好处理程序,
IF SENDER IS TButton then
With (Sender As TButton ) do
begin
 font.color:=/////
end;
然后其他需要的组件把OnMouseMove指定为这个过程就行了。
yijun2000 2000-02-21
  • 打赏
  • 举报
回复
fancy的方法比较好,而且简单。这就是vb中控件数组的扩展。多掌握这样的概念,在很多地方都用得到,甚至不一定是控见的问题。
Fancy 2000-02-21
  • 打赏
  • 举报
回复
將其他控件的ONMOUSEMOVE都對應在同一個PROCEDURE中
然後用IS來判斷SENDER是何控件, 完了用AS進行轉換后再對其FONT.COLOR進行賦值
渤海海峡 2000-02-20
  • 打赏
  • 举报
回复
简单的例子:
从Tlabel继承,加一个focuscolor属性。
用了鼠标进入和离开两个消息。

unit HxLabel;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
THxLabel = class(TLabel)
private
FFcolor:Tcolor;
FoldColor:Tcolor;
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
procedure CMMSENTER(var Msg: TMessage);message CM_MOUSEENTER;
procedure CMMSLEAVE(var Msg: TMessage);message CM_MOUSELEAVE;
published
property FocusColor:Tcolor read FFcolor write FFcolor;
{ Published declarations }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Hxsoft', [THxLabel]);
end;

procedure THxlabel.CMMSENTER(var Msg: TMessage);
begin
//鼠标进入
Foldcolor:=self.font.Color;
self.Font.Color:= FFcolor;
end;

procedure THxlabel.CMMSLEAVE(var Msg: TMessage);
begin
//鼠标离开
self.font.Color:=Foldcolor;
end;

end.
hahah 2000-02-20
  • 打赏
  • 举报
回复
我要DELPHI的代码,QIUJOE可以吗?
qiujoe 2000-02-20
  • 打赏
  • 举报
回复
扩展你的TControl类让所有组件继承于你的扩展类就可以了
如果需要的话可以给你一段VC的例子
土豆 2000-02-20
  • 打赏
  • 举报
回复
1。鼠标进入可由MOUSMOVE得到
2. 鼠标离开没有消息,但父窗口会得到消息,可在父窗口的MOUSEMOVE消息处理中处理;另外,也可以做一个定时器,在鼠标移入控件时启动定时器,每个一段较短的时间就检查鼠标是否在控件上,如果没有则说明鼠标移出了
kxy 2000-02-20
  • 打赏
  • 举报
回复
好像没有简单的方法,
把要用到的控件都自己继承一个:)
gypb 2000-02-20
  • 打赏
  • 举报
回复
利用IS 操作副可轻松搞定。
IF SENDER IS TButton then
With (Sender As TButton ) do
begin
{do somthing};
end;
Re: 《Linux 系统常用内置命令》  ---------------------------------------内容提要:     01. Linux内置命令概述;两栖命令 echo pwd kill 等等    02. 判断内置命令的方式;help -d [command] 能够正常回显    03. 内置命令在 shell 脚本中的基础应用介绍    04. 内置命令 alias 和 unalias 自定义别名和删除别名;临时生效与永久生效    05. 后台前台 出将入相 腾腾转 任务相关命令 bg fg jobs    06. SHELL 循环的处理方式 break continue exit    07. 常见 builtin 内置命令 eval exit export history    08. 内置命令 read 交互式赋值变量;type 判断命令类型    09. 内置命令 ulimit 修改系统资源使用限制;unset 清空变量  本人在教学和实战过程中发现,即便是有一定运维经验的人,可能已经能够搭建一定复杂度的Linux架构,但是在来来回回的具体操作中,还是体现出CLI(命令界面)功底不够扎实,甚至操作的非常‘拙’、处处露‘怯’。 对一个士兵来说,枪就是他的武器,对于一个程序员来说,各种library(工具库)就是他的武器;而对于Linux运维人员来说,无疑命令行工具CLI(命令界面)就是他们的武器;高手和小白之间的差距往往就体现在对于这些“武器”的掌握和熟练程度上。有时候一个参数就能够解决的事情,小白们可能要写一个复杂的Shell脚本才能搞定,这就是对CLI(命令界面)没有理解参悟透彻导致。 研磨每一个命令就是擦拭手中的作战武器,平时不保养不理解,等到作战的时候,一定不能够将手中的武器发挥到最好,所以我们要平心、静气和专注,甘坐冷板凳一段时间,才能练就一身非凡的内功! 本教程从实战出发,结合当下流行或最新的Linux(v6/7/8 版本)同时演示,将命令行结合到解决企业实战问题中来,体现出教学注重实战的务实精神,希望从事或未来从事运维的同学,能够认真仔细的学完Linux核心命令的整套课程。 本课程系列将逐步推出,看看我教学的进度和您学习的步伐,孰占鳌头! 注:关于教学环境搭建,可以参考本人其它课程系列,本教学中就不再赘述!  《参透 VMware 桌面级虚拟化》 《在虚拟机中安装模版机(包括应用软件等)》 《SecureCRT 连接 GNS3/Linux 的安全精密工具》

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧