Новое событие в компоненте

отредактировано 16:15 Раздел: FastReport 4.0
На основе TfrxCustomMemoView создаётся новый компонент. Пытаюсь добавить новое событие для отрисовки компонента, но нет возможности достучаться до Report.
type
TfrxDrawCellEvent = type String;

TfrxMemoTable = class(TfrxCustomMemoView)
  private
    fDrawCell: TfrxDrawCellEvent;
  public
    procedure Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended); override;
  published
    property OnDrawCell: TfrxDrawCellEvent read fDrawCell write fDrawCell;
end;

implementation

procedure TfrxMemoTable.Draw(Canvas: TCanvas; ScaleX, ScaleY, OffsetX, OffsetY: Extended);
var v: Variant;
begin
  inherited;
  v := VarArrayOf([integer(self), true]);
// Здесь Report всегда nil !!!
  if Report <> nil then Report.DoParamEvent(fDrawCell, v, false);
end;

var Bmp: TBitmap;

initialization
  Bmp := TBitmap.Create;
//  Bmp.LoadFromResourceName(hInstance, 'frxMemoTable');
  frxObjects.RegisterObject(TfrxMemoTable, Bmp);
  frxResources.Add('TfrxDrawCellEvent', 'PascalScript=(Sender: TObject; var CanDraw: boolean);');
finalization
  frxObjects.Unregister(TfrxMemoTable);
  Bmp.Free;

end.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.