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

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

请问有什么方法可以用很少的代码就能达到?
...全文
270 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;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& @ 欢迎使用 吕达嵘 的汉化软件 @ @ 不足之处请多多指教 :-) @ ################################################### ★ Remote Administrator 2.2 官方简体中文语言包 远程控制你的计算机,你可以在本地看见远程计算机的屏幕显 示,本地的鼠标、键盘的有关反应也会传送到远程计算机。 它有以下特点: 1.运行速度快。 2.Radmin支持被控端以服务的方式运行、支持多个连接和IP 过滤(即允许特定的IP控制远端机器)、个性化的文件互传、 远程关机、支持高分辨率模式、基于Windows NT的安全支 持及密码保护以及提供日志文件支持等。 3.在安全性方面,Radmin支持Windows NT/2000用户级安全特 性,您可以将远程控制的权限授予特定的用户或者用户组, Radmin将以加密的模式工作,所有的数据(包括屏幕影像、 鼠标和键盘的移动)都使用128位强加密算法加密; 服务器端 会将所有操作写进日志文件,以便于事后查询,服务器端有 IP过滤表,对IP过滤表以外的控制请求将不予响应。 4.Radmin 目前支持TCP/IP协议,应用十分广泛。 注册码:08Rc+SqPTXOQabByH6b9KI7Jn7Hn0jSUgpa+fXGSToxu4krbL25vq7tzMq-90AHwbrqHDBbPtOyH1zdlienxLX32 感谢 Vdown (www.vdown.org) 提供! 汉化说明: 1、首先安装原程序并退出程序。 2、将压缩包内的文件复制到 Radmin 的安装目录下。 3、运行 Remote Administrator,选择菜单“Help-Language” 然后选择下拉菜单中的“Chinese”,重新启动程序即可。 4、此汉化使用语言包的形式,只提供客户端的汉化,服务器端 没有语言包,而且执行文件也有自校验,无法汉化。 5、这个版本修正了原来版本的一些安全性问题,建议升级。 6、现在在作者主页上下载的是 6月18日 发布的 2.2版本, 已封掉了这个注册码。如果要使用注册,请在汉化新世纪 上下载 2.2 的原英文版,此版是 6月16日发布的,功能完 全一样,只是可注册而已 :) 7、我已获得作者授权,此为官方的简体中文语言包。 GOOD LUCK!!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本站★虚幻时空★正式承接各类商业汉化 有意者请来信详谈:ldrhan@21cn.com ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 吕达嵘 (ldrhan@21cn.com) 虚幻时空:http://unreally.yeah.net 汉化新世纪:http://www.hanzify.org 成员网站 2004.7.2
压缩包里面有1.2和1.3两个版本,1.3较之1.2主要是快捷功能菜单项有所增加,另外个人感觉1.3滚轮缩放功能不如1.2流畅,还是推荐使用1.2版本。 程序exe文件放其他地方运行也行,不过程序所带的快捷功能菜单估计用不了~~~ exe文件会被杀软报木马病毒,添加信任列表即可。 -------------------- 这个软件主要是利用了MAPGIS本身的功能,以及一些快捷方式! 再利用键盘钩子,映射键盘到鼠标上。 再通过其它算法(可以不用,只不过会很憋拗)达到更好的效果! 并没有对MAPGIS本身做任何改动!所以不会影响MAPGIS的稳定性! 使用过程中关闭本程序也不会有任何问题! (关闭后功能也就鼠标滚轮和快捷方式不能用而已) 当然程序启动后你也可以再打开一个MAPGIS编辑子系统窗口, 同样可以使用鼠标滚轮和快捷方式! -------------------- 软件使用说明: 鼠标滚轮:以鼠标光标为中心放大缩小 鼠标中键: 手形移动窗口 在绘图窗口敲 [Space]空格键 或者 双击[鼠标右键](1.3版本)打开快捷功能菜单 ---------以下的功能要在画线或弧段时才有效(以下实际上是MAPGIS本身的功能)--------- 按住[鼠标右键]单击[鼠标左键]:靠近线或弧段(不加点) ------新功能 按住[鼠标右键]单击[鼠标中键]:封闭线或弧段 ------新功能 按住[鼠标右键]向前推[鼠标滚轮]:锁定线或弧段的折点 ------新功能 按住[鼠标右键]向后拨[鼠标滚轮]:画线或画弧段时退点 ------新功能 [E]键 窗口中心跳到光标处 [5]数字键 更新窗口 [6]数字键 返回上级窗口 [R]键 画线或画弧段时退点 [W]键 调转线或弧段方向 [F]键 靠近线或弧段(加点) [D]键 靠近线或弧段(不加点) [S]键 锁定线或弧段的中点 [A]键 锁定线或弧段的头或尾 [Shift]键 锁定线或弧段的折点 [Ctrl]键 + [鼠标右键] 封闭线或弧段 [Ctrl]+[Enter]暂停或启动本程序

5,387

社区成员

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

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