用dll方式封裝mdi子窗體是一種常用的軟體開發技術,它的優點:
開發人員可以負責某乙個模組的編寫包括(介面+邏輯),可以互不干擾,模組開發完成後,主程式統一呼叫。
易於程式公升級,當程式公升級時,不用編譯主exe檔案,更新某個dll就可以公升級。
可以根據客戶不同的需求、價錢給他們不同的模組。(奸商都願意用這招)
最近用到這個技術,因為小弟沒有用過,在網上google了一下,對它有了了解,我用的是基於***的dll,下面總結如下:
想在dll中封裝mdi子窗體,要注意以下幾點:
你要重寫dll入口函式
需要注意的就這麼多,下面結合例子看看(假設你已經建立了工程):
這是createmdiform方法的實現:
if not ge***iform(form1) then //ge***iform 是判斷窗體是否已經建立
begin
form1 := tform1.create(af); //建立子窗體
form1.formstyle := f**dichild;
form1.show;
end;
end;
procedure dllunloadproc(reason: integer); register;
begin
if (reason = dll_process_detach) or (reason = dll_thread_detach) then
這樣就實現了dll封裝mdi子窗體,當然你要在子窗體上進行比如:資料庫的操作,還要有更豐富的介面,肯定會遇到各種問題。以後總結了再說吧!^_^
在dll初始化的位置加入:
DLL方式封裝MDI子窗體是一種常用的軟體開發技術
dll方式封裝mdi子窗體是一種常用的軟體開發技術,它的優點 人員可以負責某乙個模組的編寫包括 介面 邏輯 可以互不干擾,模組開發完成後,主程式統一呼叫。程式公升級,當程式公升級時,不用編譯主exe檔案,更新某個dll就可以公升級。可以根據客戶不同的需求 價錢給他們不同的模組。奸商都願意用這招 用到...
MDI 啟用子窗體的方法
最近做乙個小應用程式,用到了mdi。以前看到過.net mdi有發生memoryleak的問題,沒想到在.net 3.5裡依然存在。查了下資料,說是在有gridview窗體重畫時,容易導致記憶體洩露。因此在show的外面套上了 suspendlayout 和 resumelayout。目前為止還沒再...
MDI父窗體和子窗體之間怎麼傳值?
主要的思想就是,通過成員變數和構造器初始化來傳值 父窗體 public partial class main form form public datatable allinsdt private void button1 click object sender,eventargs e form1 ...