如何实现将鼠标指在按钮上按钮图标便变化?(100分)

  • 主题发起人 主题发起人 杰蛙
  • 开始时间 开始时间

杰蛙

Unregistered / Unconfirmed
GUEST, unregistred user!
在那些播放器中经常看到将鼠标放在按钮上图标便加亮了,Delphi中的OnMouseMove事件只能判断鼠标移动,不能判断鼠标离开事件。不知怎样实现 动态的图标转换?
 
用toolbar控件
 
加入鼠标移入移出消息的处理就是了。
下面是个例子:
TmyButton=class tbutton
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;

再在实现中:
procedure TmyButton.CMMouseEnter(var Message: TMessage);
begin
//inherited;
//画加亮图片
end;
procedure CMMouseLeave(var Message: TMessage);
begin
//画正常图片
end;
 
如果想要使用现成的组件,Toolbar97是比较方便的,它的Toolbarbutton97就有
OnMouseEnter()
OnMouseExit()
事件,实现您所说的功能,原理跟amo说的是一样的。
如果要下载,我主页上倒是有最新的。 :)

<a href="http://glowing.yeah.net" target="_blank">
<img src="http://www.nease.net/~glowing/gif/glowing.gif"
alt="Delphi心得网站,一个全新概念的Delphi技术网站" border="1"
width="88" height="31"></a>
 
用不着这么麻烦吧.
只不过要设置几组image属性就行了
hotimages 亮时的
images 通常的
disableimages 不可用的.
 
hansong是对的和最省事的
 
toolbar + imagelist
 
我也有一事想问一下,对于toolbutton,
hotimages 亮时的
images 通常的
disableimages 不可用的
请问当鼠标按下去时的images是什么???我发现有的软件鼠标按下去时image也会变.
 
那要看控件是否支持了. 有glyph属性一般都跟有个numglyphs属性, 这个值最大为4
第一幅: normal状态
第二幅: disable状态
第三幅: mouseenter状态
第四幅: mousedown状态
试试做一个包含四幅图的bmp传给bitbtn.glyph
 
谢谢Another_eYes
 
呵呵, 也不用特地做图, 只要随便给个图象, 然后把numglyphs改成4就可以了:-)
另外, eyes, 你在ex-ex上收获如何???
 
那太慢了(竟然比这里都慢). 看一题至少要5分钟, 刷新5-8次.
所以成绩不理想. 才17xx分.
 
ex-ex改版之后确实速度慢了很多,不知道为什么.
 
有空的话不如去找找控件。delphi的toolbar也可以用,只是好象有问题。
 
谢谢大家:) 我只想学一点编程的技巧,所以没有考虑用控件。小弟学Delphi编程才几个月,以后还有望各位大虾指点。 @@
//////
 
多人接受答案了。
 
后退
顶部