翻譯|使用教程|編輯:楊鵬連|2021-06-30 09:42:00.980|閱讀 231 次
概述:FastReport VCL它提供了可視化模板設計器,可以訪問 30 多種格式,并可以部署到云、網站、電子郵件和打印中。本文介紹了FastReport VCL自定義常用控件編寫。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
FastReport VCL是用于 Delphi、C++ Builder、RAD Studio 和 Lazarus 的報告和文檔創建 VCL 庫。它提供了可視化模板設計器,可以訪問 30 多種格式,并可以部署到云、網站、電子郵件和打印中。
FastReport 包含一組常用控件,可以放置在報表內的對話表單上。它們如下:
TfrxLabelControl TfrxEditControl TfrxMemoControl TfrxButtonControl TfrxCheckBoxControl TfrxRadioButtonControl TfrxListBoxControl TfrxComboBoxControl TfrxDateEditControl TfrxImageControl TfrxBevelControl TfrxPanelControl TfrxGroupBoxControl TfrxBitBtnControl TfrxSpeedButtonControl TfrxMaskEditControl TfrxCheckListBoxControl這些控件元素對應于 Delphi 組件面板標準控件。如果標準功能不能滿足您的要求,您可以創建自己的通用控件并在報告中使用它。
所有公共控件的基本類是TfrxDialogControl在 frxClass 文件中聲明的類:
TfrxDialogControl = class(TfrxReportComponent) protected procedure InitControl(AControl: TControl); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; class function GetDescription: String; virtual; property Caption: String; property Color: TColor; property Control: TControl; property OnClick: TfrxNotifyEvent; property OnDblClick: TfrxNotifyEvent; property OnEnter: TfrxNotifyEvent; property OnExit: TfrxNotifyEvent; property OnKeyDown: TfrxKeyEvent; property OnKeyPress: TfrxKeyPressEvent; property OnKeyUp: TfrxKeyEvent; property OnMouseDown: TfrxMouseEvent; property OnMouseMove: TfrxMouseMoveEvent; property OnMouseUp: TfrxMouseEvent; published property Left; property Top; property Width; property Height; property Font; property ParentFont; property Enabled: Boolean; property Visible; end;要創建您自己的控制元素,您應該從此類繼承并至少覆蓋構造函數和GetDescription方法。有必要創建公共控件并通過InitControl構造函數中的方法對其進行初始化。GetDescription方法是返回公共控件描述。從TfrxDialogControl類描述中可以看出,它已經在公共部分包含了大量的屬性和方法。您需要將任何必要的屬性/事件傳輸到公共控件的“已發布”部分,并且還需要創建新的屬性,這對于您的元素是典型的。
公共控件的注冊和刪除是通過frxObjectsfrxDsgnIntf 文件中聲明的全局對象方法執行的:
frxObjects.RegisterObject(ClassRef: TfrxComponentClass; ButtonBmp: TBitmap); frxObjects.Unregister(ClassRef: TfrxComponentClass);在注冊期間,您應該指定控件類名稱及其圖片。ButtonBmp 大小應為 16x16 像素。
例如,讓我們檢查通用控件的示例,它簡化了標準 DelphiTBitBtn控件的功能。
uses frxClass, frxDsgnIntf, Buttons; type TfrxBitBtnControl = class(TfrxDialogControl) private FButton: TBitBtn; procedure SetKind(const Value: TBitBtnKind); function GetKind: TBitBtnKind; public constructor Create(AOwner: TComponent); override; class function GetDescription: String; override; property Button: TBitBtn read FButton; published { add new properties } property Kind: TBitBtnKind read GetKind write SetKind default bkCustom; { these properties are already declared in parent class } property Caption; property OnClick; property OnEnter; property OnExit; property OnKeyDown; property OnKeyPress; property OnKeyUp; property OnMouseDown; property OnMouseMove; property OnMouseUp; end; constructor TfrxBitBtnControl.Create(AOwner: TComponent); begin { default constructor } inherited; { create required common control } FButton := TBitBtn.Create(nil); FButton.Caption := 'BitBtn'; { initialize it } InitControl(FButton); { it will have such size by default } Width := 75; Height := 25; end; class function TfrxBitBtnControl.GetDescription: String; begin Result := 'BitBtn control'; end; procedure TfrxBitBtnControl.SetKind(const Value: TBitBtnKind); begin FButton.Kind := Value; end; function TfrxBitBtnControl.GetKind: TBitBtnKind; begin Result := FButton.Kind; end; var Bmp: TBitmap; initialization Bmp := TBitmap.Create; {Load picture from resource. Of course, you should beforehand place it there.} Bmp.LoadFromResourceName(hInstance, 'frxBitBtnControl'); frxObjects.RegisterObject(TfrxBitBtnControl, Bmp); finalization frxObjects.Unregister(TfrxBitBtnControl); Bmp.Free; end.
如果您對 FastReport 感興趣,歡迎加入 FastReport QQ 交流群:702295239
還想要更多嗎?您可以點擊閱讀【FastReport報表2021最新資源盤點】,查找需要的教程資源。上是FastReport .NET慧正在網火熱銷售中!>>查看價格詳情
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: