FastReport VCL报表控件开发者手册三:事件处理程序介绍

如果事件处理程序不属于基类的话,如何定义一个新的事件处理程序呢?本文中就以“TfrxEditControl”常用控件为例来看看如何定义一个新的事件处理程序。

TfrxEditControl = class(TfrxDialogControl)
private
FEdit: TEdit;
{ new event }
FOnChange: TfrxNotifyEvent;
procedure DoOnChange(Sender: TObject);
...
public
constructor Create(AOwner: TComponent); override;
...
published
{ new event }
property OnChange: TfrxNotifyEvent read FOnChange write FOnChange;
...
end;
constructor TfrxEditControl.Create(AOwner: TComponent);
begin
...
{ connect our handler }
FEdit.OnChange := DoOnChange;
InitControl(FEdit);
...
end;
procedure TfrxEditControl.DoOnChange(Sender: TObject);
begin
{ call event handler }
if Report <> nil then
Report.DoNotifyEvent(Sender, FOnChange);
end;

值得注意的是,FastReport VCL报表中的事件处理程序是一个定义在报表脚本中的程序。TfrxNotifyEvent类型被声明为String[63],在FastReport VCL中,链接事件处理程序的是一个包含名称的字符串。

posted @ 2012-12-03 13:05  LeamonAB  阅读(356)  评论(0编辑  收藏  举报