ERPSYSTEM開發教程03 DEMO程序開發過程 |
|
erpsystem
一般會員 發表:4 回覆:1 積分:1 註冊:2013-12-05 發送簡訊給我 |
DEMO程序說明
運行效果可看下附件DEMO.gif 提供了兩個演示接口 [code delphi] IBplOne=interface ['{E4C1C5FA-C598-4834-9111-26B52634068D}'] function Add(A,B:Integer):integer; function Sub(A,B:Integer):Integer; end; IDllOne=interface ['{0434DE04-07C9-4623-9009-CF7892768431}'] function GetString:string; procedure SetString(const Str:string); end; [/code] 這裏演示了主窗體調用接口IBplOne,調用Dll和BPL裏的窗體 Dll窗體調用了IBplOne接口和IDllOne接口,BPL窗體調用了IDllOne接口 其中IBplOne采用接口工廠創建,IDllOne采用單實例工廠創建,所以在Dll窗體調用接口IDllOne與BPL窗體調用接口IDllOne是同壹實例 開發步驟 主程序 將工程文件裏的Forms替換為uTangramFramework,同時把核心包Tangram_Core加入運行庫 如果是通過IDE向導創建的主程序,則這兩個步驟就已經做好的了 模塊 壹個模塊要被框架所調用必須引用框架包Tangram_Cor.dcp ,同時定義壹個TMoudle子類和壹個GetModuleClass導出函數,采用向導創建模塊這些都會自動創建 [code delphi] Type TUserModule=Class(TModule) private public Constructor Create; override; Destructor Destroy; override; procedure Init; override; procedure final; override; procedure Notify(Flags: Integer; Intf: IInterface); override; class procedure RegisterModule(Reg:IRegistry);override; class procedure UnRegisterModule(Reg:IRegistry);override; End; initialization //模塊子類註冊 RegisterModuleClass(TUserModule); finalization [/code] [code delphi] //模塊導出函數 Exports InstallModule, UnInstallModule, GetModuleClass; [/code] 然後在包裏創建接口定義文件,壹般我們把對外開放的接口放到壹個公共目錄,並加入Delphi搜索路徑,這樣其它工程也能引用到 [code delphi] unit BplOneIntf; {$WEAKPACKAGEUNIT ON} interface type IBplOne=interface ['{E4C1C5FA-C598-4834-9111-26B52634068D}'] function Add(A,B:Integer):integer; function Sub(A,B:Integer):Integer; end; implementation end. [/code] 並用向導來創建接口實現單元,接口實現單元會創建接口的實現類,接口實例創建函數,類廠 [code delphi] //接口實現類 Type TBplOne=Class(TInterfacedObject,IBplOne)//假設妳的接口叫IXXX(以下同) private protected {IXXX} //這裏加上妳接口方法,然後按Ctrl Shift C,實現妳的接口... function Add(A,B:Integer):integer; function Sub(A,B:Integer):Integer; Public End; implementation //接口實例創建函數 procedure Create_BplOne(out anInstance: IInterface); begin anInstance:=TBplOne.Create; end; //類廠註冊 var Factory:TObject; initialization Factory:=TIntfFactory.Create(IBplOne,@Create_BplOne); finalization Factory.Free; [/code] 這樣模塊的編寫就完成了,接下來是接口調用 [code delphi] procedure TFrmMain.Button1Click(Sender: TObject); var intf:IBplOne; begin intf:=SysService as IBplOne; Edit3.Text:= IntToStr( intf.Add(StrToInt(Edit1.Text),StrToInt(Edit2.Text)) ); end; procedure TfrmBplOne.Button3Click(Sender: TObject); var intf:IDllOne; begin intf:=SysService as IDllOne; Edit5.Text:=intf.GetString; end; [/code] 框架采用的是統壹的接口調用,壹個有定義類廠的接口,就可以通過 SysService as IXXX 的統壹方式來調用 運行程序之前要把編譯好的框架核心包Tangram_Core.bpl和框架配制工具ConfigTool.exe放到程序目錄。 框架默認是采用從XML文件來自動加載模塊的,通過框架配制工具ConfigTool.exe,把做好的模塊安裝壹下, 啟動主程序,如DEMO.gif效果 如果需要DEMO源代碼,請留下EMAIL地址 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |