翻譯|使用教程|編輯:楊鵬連|2021-06-30 09:42:00.980|閱讀 231 次
概述:FastReport VCL它提供了可視化模板設(shè)計器,可以訪問 30 多種格式,并可以部署到云、網(wǎng)站、電子郵件和打印中。本文介紹了FastReport VCL自定義常用控件編寫。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
FastReport VCL是用于 Delphi、C++ Builder、RAD Studio 和 Lazarus 的報告和文檔創(chuàng)建 VCL 庫。它提供了可視化模板設(shè)計器,可以訪問 30 多種格式,并可以部署到云、網(wǎng)站、電子郵件和打印中。
FastReport 包含一組常用控件,可以放置在報表內(nèi)的對話表單上。它們?nèi)缦拢?br />
TfrxLabelControl TfrxEditControl TfrxMemoControl TfrxButtonControl TfrxCheckBoxControl TfrxRadioButtonControl TfrxListBoxControl TfrxComboBoxControl TfrxDateEditControl TfrxImageControl TfrxBevelControl TfrxPanelControl TfrxGroupBoxControl TfrxBitBtnControl TfrxSpeedButtonControl TfrxMaskEditControl TfrxCheckListBoxControl這些控件元素對應(yīng)于 Delphi 組件面板標準控件。如果標準功能不能滿足您的要求,您可以創(chuàng)建自己的通用控件并在報告中使用它。
所有公共控件的基本類是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;要創(chuàng)建您自己的控制元素,您應(yīng)該從此類繼承并至少覆蓋構(gòu)造函數(shù)和GetDescription方法。有必要創(chuàng)建公共控件并通過InitControl構(gòu)造函數(shù)中的方法對其進行初始化。GetDescription方法是返回公共控件描述。從TfrxDialogControl類描述中可以看出,它已經(jīng)在公共部分包含了大量的屬性和方法。您需要將任何必要的屬性/事件傳輸?shù)焦部丶摹耙寻l(fā)布”部分,并且還需要創(chuàng)建新的屬性,這對于您的元素是典型的。
公共控件的注冊和刪除是通過frxObjectsfrxDsgnIntf 文件中聲明的全局對象方法執(zhí)行的:
frxObjects.RegisterObject(ClassRef: TfrxComponentClass; ButtonBmp: TBitmap); frxObjects.Unregister(ClassRef: TfrxComponentClass);在注冊期間,您應(yīng)該指定控件類名稱及其圖片。ButtonBmp 大小應(yīng)為 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慧正在網(wǎng)火熱銷售中!>>查看價格詳情
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: