本例中,FtooBig为定义的事件处理过程指针,OnTooBig为事件属性名。<br>事件处理过程指针FtooBig通过程序的初始化使之指向过程TooBig1。<br>在Delphi的表单(Form1)上放置三个编辑框,分别为Edit1、Edit2和Edit3,<br>放一按钮Button1。程序中设私有整型变量val1、val2和res,变量res用来记录val1和val2的乘积,<br>并用Edit3显示出来。当通过Edit1和Edit2输入的数据有一个大于100时,<br>会触发一个事件,并调用事件处理过程TooBig1显示一个对话框,说明此事件已经发生并已进行处理。<br><br>源程序代码如下, 该程序在Delphi 4.0中调试通过。 <br><br>unit Unit1;<br>interface<br> uses Windows, Messages, SysUtils, Classes,Graphics, Controls, Forms, Dialogs,StdCtrls;<br>type<br> TForm1 = class(TForm)<br> Edit1: TEdit; {输入第一个整数}<br> Edit2: TEdit; {输入第二个整数}<br> Edit3: TEdit; {输出前二个整数的积}<br> Button1: TButton;<br> procedure Button1Click(Sender: TObject);<br> procedure TooBig1(Sender: TObject); {当事件触发后调用此过程}<br> procedure FormCreate(Sender: TObject);<br> private<br> val1,val2,res:integer; {val1和val2存放输入的两个整数,res存放两数的积}<br> FTooBig : TNotifyEvent; {定义一个指向事件处理器的指针FTooBig}<br> { Private declarations }<br> public<br> { Public declarations }<br> published<br> property OnTooBig:TNotifyevent read FTooBig write FTooBig;{定义事件}<br> end;<br><br>var<br> Form1: TForm1;<br><br>implementation<br>{$R *.DFM}<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> val1 := StrToInt(Edit1.Text);<br> val2 := StrToInt(Edit2.Text);<br> if(val1< 100)and(val2< 100) then<br> begin<br> res := val1*val2;<br> Edit3.Text := IntToStr(res);<br> end<br> else<br> if assigned(FTooBig) then OnTooBig(Self);<br>end;<br><br>procedure TForm1.TooBig1(Sender: TObject);<br>begin<br> Application.MessageBox('Too Big',' Test Event! ',MB_OK);<br>end;<br><br>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br> val1:=1;<br> val2:=1;<br> FTooBig := TooBig1;{使事件处理指针指向事件处理器}<br>end;<br><br>end.<br><br>--------------------------------------------------------------------------------<br>