做一个按钮控件,要求从TImage继承,鼠标移上去后加载焦点图片,鼠标离开后显示默认图片;,允许在设计期静态加载,也允许在运行期动态加载。
解决方案 »
- 帮帮忙吧,用到了DBGRID,发现可以直接修改里面的内容,原本想做个修改按键的,可是直接修改会产生问题,有时会修改成相同的记录,但并不会有提示,我不想出现两条相
- Delphi里如何拼整数串,比如40001,40002拼为一个string
- 一个窗体上有三个按钮,功能分别是正常模式、嵌入桌面和始终置前,请问如何实现??感激万分(本人15岁,想做桌面精灵)
- 客户端无法连接数据库SQLSERVER2000,网络是通的。什么原因?如何解决?高手指点!
- 如何在DELPHI中编写一个接收参数的EXE文件。
- Indy控件的小问题关于ReadBufferasdf
- 如何调用外部dll函数?
- 找到合适的工作,明天去上班,散分~~~~
- delphi高手,Tinifile怎么从变量中取数据啊?就是不用Tinifile.create(filename)....
- 关于串口接收数据的问题
- CS模式软件是怎么进行通讯的。
- ShellListView中如何删除选定的文件夹及它的子文件夹?
Ancestor Type: Timage
其他的自己填,生成一个pas文件,然后加入下面的代码声明: private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
实现procedure timage1Button.CMMouseEnter(var Message: TMessage);
begin
self.Picture.LoadFromFile('C:\WINDOWS\Rhododendron.bmp');
end;procedure timage1Button.CMMouseLeave(var Message: TMessage);
begin
self.Picture.LoadFromFile('C:\WINDOWS\Santa Fe Stucco.bmp');
end;
保存,然后选菜单Component->Install Component
Unit file name里选择你刚才创建的pas文件,点OK,安装控件
这种东西完全没必要自己做一个,现成的好多.
raize,sui,tms...这些组件包中都有类似的图片按钮.
procedure Register;
begin
RegisterComponents('My', [TmyButton]);
end;
注册一下
非得长成灰不溜球那样才叫?
//创建位图对象类
BitmapPic := TBitmap.Create();
//设置透明效果
BitmapPic.Transparent:=True ;
BitmapPic.TransparentColor:=$FFFFFF;
BitmapPic.LoadFromFile('D:\picture\smiles-1.bmp');
// 1//self.Picture.LoadFromFile()//('D:\picture\smiles-1.bmp');
// 2//self.Picture.Bitmap:= BitmapPic;
//3// self.Canvas.Draw(0,0,BitmapPic);
我用2、3都实现不了..
2.剪裁区域,就是把按钮剪切成图像指定的区域(除去指定为透明的区域),要用到SetWindowRgn.区域被剪裁后,系统在绘制这个按钮时就能表现出透明效果.要做到这些,需要熟悉绘图算法才行的.
如果楼主就是要研究这方面控件的技术的话,支持楼主去学习.
但如果只是在某个项目里需要用到这样一个控件的话,还是建议拿现成的来用.
http://www.vckbase.com/document/viewdoc/?id=532
http://www.vckbase.com/document/viewdoc/?id=1861
有的话发我个,[email protected]
thank you