欢迎来到天天文库
浏览记录
ID:1598472
大小:346.00 KB
页数:2页
时间:2017-11-12
《――为tbutton增加mouseleave事件》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、――为TButton增加MouseLeave事件 用VB,Delphi等快速编程工具,使用最多的一定是各种控件了,用自带的控件编出的程序往往千篇一律,为了使自己的程序更个性化或者为了使控件的功能更强,我们需要自己编控件,大家不要以为自己编控件好难,看完我的两篇文章,保证人人都能编自己的控件。好了开工吧:首先,我们做的这个控件是为了给TButton控件增加Mouseleave事件,有了这个事件,我们就可以编出类似网页中的悬停按钮的效果,打开Delphi,选Component
2、newComponent出现如下的画面,我们的控件类名为TButton1,父类为TButton,库单元文件名为Butt
3、on1.单击确定按钮,Component Wizard粗略的生成模板样式的代码,其中有类声明,全局变量声明及传递到RegisterComponent方法中的参数等,编译好的整个文件的程序清单如下:unitButton1;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;typeTButton1=class(TButton)privateFOnMouseLeave:TNotifyEvent;procedureWZMouseLeave(varMsg:TMessage);m
4、essageCM_MOUSELEAVE;{Privatedeclarations}protected{Protecteddeclarations}public{Publicdeclarations}publishedpropertyOnMouseLeave:TNotifyEventreadFOnMouseLeavewriteFOnMouseLeave;{Publisheddeclarations}end;procedureRegister;implementationprocedureRegister;begin//在系统中注册RegisterComponents('Samples',[TB
5、utton1]);end;{TButton1}procedureTButton1.WZMouseLeave(varMsg:TMessage);begininherited;//继承父类ifcsLButtonDowninControlStatethenbeginSelf.MouseUp(mbLeft,[ssLeft],0,0);end;ifAssigned(FonMouseLeave)thenFOnMouseLeave(Self);end;end.代码添加完后,编译后,一个名为Button1的控件即加入Simples项中,新建一个项目,试试以下的代码:procedureTForm1.Butto
6、n11MouseMove(Sender:TObject;Shift:TShiftState;X,Y:Integer);beginlabel1.Caption:='ll';end;procedureTForm1.Button11MouseLeave(Sender:TObject);beginlabel1.Caption:='dd';end;怎么样,是不很简单,以上在Delphi5.0调试通过。
此文档下载收益归作者所有