求助:请问如何实现图片按钮的三态效果
我在自己尝试编程,我想实现按钮的三态,怎么也不能成功,请教做法!
我的想法是这样的: 在没有选中按钮前,就显示其up时的图片,当鼠标按下去就显示下一张图片,松开不点击又恢复第一张图片,点击了就变成最后一张图片.
希望大家能给与程序或例子!!!
非常感谢!!
问题点数:0、回复次数:8Top
1 楼cgj3721(cgj3721)回复于 2003-02-03 21:26:08 得分 0
请高手帮忙Top
2 楼rouqing(*冰雨&双子座奇缘*)回复于 2003-02-03 23:06:43 得分 0
这样吧,自己做个res,连接到主程序吧,然后在不同的鼠标事件下载入资源图片吧Top
3 楼liping3388()回复于 2003-02-04 22:04:08 得分 0
如下
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin
image1.Picture.LoadFromFile('e:\新建文件1夹\2.jpg');
end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin
image1.Picture.LoadFromFile('e:\新建文件1夹\1.jpg');
end;
Top
4 楼Patsy(术子米德)回复于 2003-02-05 14:01:44 得分 0
jpegUp,jpegMove,jpegClick从文件或RES中加载
procedre OnBitBtnMove;
begin
BitBtn.Graph.Assign(jpegUp);
end;
procedure OnBitBtnClick;
begin
BitBtn.Graph.Assign(jpegClick);
end;
procedure OnFormMove;
begin
BitBtn.Grahp.Assign(jpegMove);
end;
我上次做的时候就是按这个思路实现的,供你参考,还有些细节你自己解决应该没问题了吧Top
5 楼cloud_leonhart(阿萌)回复于 2003-02-05 23:08:27 得分 0
我想楼主是想实现任意图形都可以做按扭的效果吧,就想在做WEB一样自己做一个图片然后把他做成BUTTON,上面几位朋友的方法都不错,但是都有一个共同点就是是用BUTTON控件实现的,这样对实现任意形状的要求就没有达到了,因为BUTTON被限制了只能是RECTANGLE的,建议你可以用这样的方法,就是利用IMAGE的控件来实现,至于怎么判断UP/DOWN/OUT,因为IMAGE控件有提供这样的事件,但是如果单纯利用那些EVENT的话会有个问题就是,IMAGE控件里的图片的重复读取,就是如果你是这样设计的,当鼠标移动到规定的X,Y以内就读取A图,移动到X,Y外面就读取B图,但是如果鼠标在X,Y范围内一直移动呢这样就会出现反复读取A图的现象,所以你要设一个全局变量用来控制判断当前鼠标是已经读取过A图了,还是没有读取过Top
6 楼supergecko(超级昆虫)回复于 2003-02-05 23:38:27 得分 0
最好在formcreate事件中打开双缓冲,form1.DoubleBuffered:=true,那样图片就不会出现闪动了.
不过如果鼠标移动按钮上呢怎么样判断Top
7 楼cloud_leonhart(阿萌)回复于 2003-02-07 22:04:28 得分 0
可以根据当前鼠标的坐标判断鼠标是否在按纽上Top
8 楼lxlsky(lxl)回复于 2003-02-08 00:54:06 得分 0
我是用image做的!Top




