这些鼠标事件的代码也非常简单,判断鼠标的坐标,在画布上画出相应的图片等,并同时触发相应的事件。值得注意的是,在调用自定义事件时,都要先用⒁处的这样一个语句来判断用户是否已经为该事件编写代码。这一点非常重要,否则会调用出错。
大家注意到了,刚才所调用的事件都是自定义的,定义的方法也很简单,和定义属性差不多,只是类型时TNotifyEvent罢了。
TNotifyEvent是默认事件,其定义为:
TNotifyEvent = procedure(Sender: TObject)
如果你要定义另外形式的事件,就必须这样:先在type后编写
<事件类型名称> = procedure(<参?gt;:<类型>)
例如:
TCustomEvent = procedure(a: Integer; b:String);
然后在public后定义:
<事件名称>:<事件类型名称>
例如:
AnEvent: TCustomEvent;
看完这些,这整个程序你应该理解了吧。如果编译或运行出错,注意检查以下几点:
1、create和destroy过程中是否有inherited语句; 2、TBitmap类型的变量create和free了没有;
3、过程前有没有控件名,例如:TPigHorizontalScroller.MoseMove
判断鼠标是否进入或离开控件的方法:
定义如下的过程:
procedure MouseEnter(var Msg: TMessage); message CM_MOUSEENTER; procedure MouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
再在下面编写代码就行了。这个方法用于编写三态按钮很有用。