FastReport VCL報表控制元件教程:元件編輯器寫作
FastReport VCL是用於 Delphi、C++ Builder、RAD Studio 和 Lazarus 的報告和文件建立 VCL 庫。它提供了視覺化模板設計器,可以訪問 30 多種格式,並可以部署到雲、網站、電子郵件和列印中。
預設情況下,任何通用控制元件編輯器(可以從元素上下文選單或透過雙擊呼叫)都會建立 OnClick 空白事件處理程式。這種行為可以透過編寫自定義編輯器來代替。此外,編輯器允許將您自己的專案新增到元件上下文選單中。
所有編輯器的基本類在 frxDsgnIntf 檔案中宣告:
TfrxComponentEditor = class(TObject) protected function AddItem(Caption: String; Tag: Integer; Checked: Boolean = False): TMenuItem; public function Edit: Boolean; virtual; function HasEditor: Boolean; virtual; function Execute(Tag: Integer; Checked: Boolean): Boolean; virtual; procedure GetMenuItems; virtual; property Component: TfrxComponent readonly; property Designer: TfrxCustomDesigner readonly; end;
如果您的編輯器沒有在上下文選單中建立自己的專案,您將需要覆蓋兩個方法,即Edit和HasEditor。第一個方法執行必要的操作(例如,顯示對話方塊)並返回“True”,如果元件狀態被修改。HasEditor如果你的元件有編輯器,方法應該返回“True”。如果它返回“False”或者您沒有覆蓋此方法,則不會呼叫編輯器。如果您的元件沒有編輯器並且您希望將專案新增到元件上下文選單中,這將是必要的。
如果編輯器將專案新增到上下文選單中,則應覆蓋GetMenuItems(在此方法中,您可以藉助呼叫AddItem函式建立選單)和Execute(呼叫此方法,當您在元件選單中選擇一項時;響應所選選單項應該在這裡描述)方法。
編輯器註冊透過“frxDsgnIntf”檔案中描述的過程執行:
frxComponentEditors.Register(ComponentClass: TfrxComponentClass; ComponentEditor: TfrxComponentEditorClass);
第一個引數是類名,要為其建立編輯器。第二個引數是編輯器類名。
讓我們來看看我們的共同控制簡單的編輯器,它會顯示一個視窗,我們的元素名稱並新增“已啟用”和“可見”專案元素上下文選單(選擇專案時,Enabled和Visible性質會發生變化)。編輯器程式碼,根據FastReport的要求,可以放在與元件程式碼檔案同名的檔案中,新增Editor字尾(例如本例中的frxBitBtnEditor.pas)。
uses frxClass, frxDsgnIntf, frxBitBtn; type TfrxBitBtnEditor = class(TfrxComponentEditor) public function Edit: Boolean; override; function HasEditor: Boolean; override; function Execute(Tag: Integer; Checked: Boolean): Boolean; override; procedure GetMenuItems; override; end; function TfrxBitBtnEditor.Edit: Boolean; var c: TfrxBitBtnControl; begin Result := False; { Component property is edited component. In this case, it is TfrxBitBtnControl } c := TfrxBitBtnControl(Component); ShowMessage('This is ' + c.Name); end; function TfrxBitBtnEditor.HasEditor: Boolean; begin Result := True; end; function TfrxBitBtnEditor.Execute(Tag: Integer; Checked: Boolean): Boolean; var c: TfrxBitBtnControl; begin Result := True; c := TfrxBitBtnControl(Component); if Tag = 1 then c.Enabled := Checked else if Tag = 2 then c.Visible := Checked; end; procedure TfrxBitBtnEditor.GetMenuItems; var c: TfrxBitBtnControl; begin c := TfrxBitBtnControl(Component); { AddItem method parameters: menu item name, its tag and Checked/Unchecked condition } AddItem('Enabled', 1, c.Enabled); AddItem('Visible', 2, c.Visible); end; initialization frxComponentEditors.Register(TfrxBitBtnControl, TfrxBitBtnEditor); end.
如果您對 FastReport 感興趣,歡迎加入 FastReport QQ 交流群:702295239
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69995027/viewspace-2781047/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- FastReport VCL程式設計師手冊:互動式報表AST程式設計師
- FastReport VCL程式設計師手冊:使用TfrxReport元件AST程式設計師元件
- FastReport VCL如何從程式碼訪問報告物件AST物件
- VCL介面控制元件DevExpress VCL釋出v17.2.8|附下載控制元件devExpress
- 將 fastreport 封裝為 ocx 控制元件AST封裝控制元件
- VCL介面控制元件DevExpress VCL Controls釋出v18.1.3|附下載控制元件devExpress
- UltraEdit文字編輯器編寫強大的宏教程
- Qt編寫自定義控制元件屬性設計器QT控制元件
- 【版本升級】VCL介面控制元件DevExpress VCL釋出v17.2.6|附下載控制元件devExpress
- fastreport .net列印普通報表AST
- Markdown 編輯器寫文章
- basecamp/trix: 用於日常寫作的富文字編輯器
- 【自定義使用者控制元件】 wpf 可繫結的RichTextBox 編輯器。控制元件
- DbForge Studio for SQL Server入門教程:在表編輯器中建立表SQLServer
- 填報表上下載檔案控制元件可寫許可權控制控制元件
- FastReport VCL在 TfrxReport.OnGetValue 中傳遞變數值AST變數
- WPF一個簡單的屬性編輯控制元件控制元件
- 掘金-Markdown 編輯器寫文章
- iA Writer文字編輯器,心無旁騖,全神貫注寫作!
- 用掘金-Markdown 編輯器寫文章
- 雜湊表:如何實現word編輯器的拼寫檢查?
- linux用什麼編輯器寫python?LinuxPython
- WPF 寫的ComboBoxTree 控制元件控制元件
- 【轉載】SAP ABAP ALV報表控制編輯行,編輯單元格
- 簡報編輯器:Deckset Mac版Mac
- ekzhang/rustpad:使用Rust編寫的高效程式碼編輯器Rust
- 【WPF】根據選項值顯示不同的編輯控制元件(使用DataTemplateSelector)控制元件
- FastReport 如何透過程式碼建立報告表單AST
- MarsEdit 4 for Mac 網路寫作部落格編輯軟體Mac
- 使用VS Code作為版本合併編輯器
- LaTeX 編輯協作平臺 Overleaf 安裝和使用教程
- 用ActiveReports 報表控制元件,輕鬆搭建HIS醫院系統控制元件
- 用Swing寫了一個Class編輯器:ClassEditor
- AngularJS自定義表單控制元件AngularJS控制元件
- 歌詞LRC檔案編輯器Mac版教程Mac
- sublimeText3編輯器 + 入門教程 + 使用大全
- G6-Editor 編輯器入門使用教程
- Markdown線上、離線編輯器與使用教程