19.2.2.2 创建事件
事件是部件的很重要的部分。事件是部件必须响应的系统事件与响应事件的一段代码的联接。响应代码被称为事件处理过程,它总是由部件用户来编写。通过使用事件,应用开发者不需要改变部件本身就能定制部件的行为。作为部件编写者,运用事件能使应用发者定制所有的标准Delphi部件。要创建事件,应当理解:
● 什么是事件
● 怎样实现标准事件
● 怎样定义自己的事件
1. 什么是事件
事件是联接发生的事情与某些代码的机制,或者说是方法指针,一个指向特定对象实例的特定方法的指针。从部件用户的角度,事件是与系统事件(如OnClick)有关的名称,用户能给该事件赋特定的方法供调用。例如,按钮Buttonl有OnClick方法,缺省情况下Delphi在包含该按钮的窗体中产生一个为ButtonlClick的方法,并将其赋给OnClick。当一个Click事件发生在按钮上时,按钮调用赋给OnClick的方法ButtonlClick:
部件用户将事件看作是由用户编写的代码,而事件发生时由系统调用的处理办法。
从部件编写者角度事件有更多的含义。最重要的是提供了一个让用户编写代码响应特定事情的场所。
要编写一个事件,应当理解:
● 事件和方法指针
● 事件是属性
● 事件处理过程类型
● 事件处理过程是可选的
⑴ 事件是方法指针
Delphi使用方法指针实现事件。一个方法指针是指向特定对象实例的特定方法的特定指针。作为部件编写者,能将方法指针作为一种容器。你的代码一发现事情发生,就调用由用户定义的方法。
方法指针的工作方式就象其它的过程类型,但它们保持一个隐含的指向对象实例的指针。所有的控制都继承了一个名为Click的方法,以处理Click事件。Click方法调用用户的Click事件处理过程。
procedure TControl.Click;
begin
if Assigned(OnClick ) then OnClick( Self );
end;
如果用户给Control的OnClick事件赋了处理过程(Handle),那鼠标点按Control时将导致方法被调用。
⑵ 事件是属性
部件采用属性的形式实现事件。不象大多数其它属性,事件不使用方法来使实现read和
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




