今天演示一下在框架下制作一個測試模塊的過程
通過框架向導新建一個BPL模塊
保存工程,習慣性地把DCP,BPL輸入路徑設置好,
用戶自已編寫的模塊建議放到主程序的Module目錄下,方便管理
新建一個默認窗體,然後修改窗體使其從ERPForm裡的TfrmERPBase繼承
先是修改源文件
type TForm2 = class(TfrmERPBase) //從ERPForm裡的TfrmERPBase繼承 private { Private declarations } public { Public declarations } end;
然後修改DMF文件,把object改為inherited,並清空自動生成的代碼
inherited Form2: TForm2 end
最後得到如下圖的窗體,經過這兩步,從使得窗體從界面跟代碼從TfrmERPBase繼承
接下來做個簡單的測試,擺放一個TCnAALabel和TButton控件
窗體代碼如下
unit TestForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ERPBaseForm, CnAAFont, CnAACtrls, ActnList, StdCtrls; type TForm2 = class(TfrmERPBase) albl1: TCnAALabel; btn1: TButton; procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } class procedure OnClick(Sender:TObject); //添加類函數,用於菜單或按鈕點擊時調用 end; //事件唯一標識 const GUID_TEST='{161B9D0E-53BA-4277-8A47-EDE37E23BE9A}'; var Form2: TForm2; implementation uses _Sys; //添加這個引用可以方便地調用系統接口 {$R *.dfm} { TForm2 } procedure TForm2.btn1Click(Sender: TObject); begin Sys.MessageBox.ShowMessage('Hello','TEST'); //調用了系統的消息提示接口 end; class procedure TForm2.OnClick(Sender: TObject); begin //調用主程序的窗體創建接口,由主程序來創建自己 Sys.Form.CreateForm(TForm2); end; initialization //添加事件注冊 Sys.EventManage.RegistEvent(GUID_TEST,TForm2.OnClick); end.
編譯,這就生成了一個能被框架調用的模塊
然後進入系統模塊加載設置
將做好的模塊添加進去,這樣系統啟動時就會加載
再把功能注冊一下
這裡的唯一標識符就是在窗體代碼裡的設置好的
綁定功能到菜單
重開軟件,點菜單 測試3,運行效果如下