FastReport VCL报表工具事件处理程序描述

FastReport是用于 Delphi、C++ Builder、RAD Studio 和 Lazarus 的报告和文档创建 VCL 库。它提供了可视化模板设计器,可以访问 30 多种格式,并可以部署到云、网站、电子邮件和打印中。

FastReport下载免费试用版

如果需要定义一个不属于基本类的新事件处理程序,应该怎么做?让我们以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 中的事件处理程序是在报告脚本中声明的过程。包含其名称的字符串将是指向处理程序的链接。这就是为什么,例如,不像 DelphiTNotifyEvent类型,它是方法地址,处理程序类型,在 FastReport 中它是字符串(TfrxNotifyEvent类型声明为 String[63])。

如果您对 FastReport 感兴趣,欢迎加入 FastReport QQ 交流群:702295239

posted @ 2021-07-05 17:15  roffey  阅读(93)  评论(1编辑  收藏  举报