動態Package切割系統的問題 |
答題得分者是:anumis
|
frappe
中階會員 發表:88 回覆:114 積分:95 註冊:2008-10-21 發送簡訊給我 |
最近剛接觸動態Package,
想試著練習開發一個使用動態Package切割程式的系統 我的想法是: 主程式 | | Package(DataModule) | --------------------------------------------------------- | | | Package(子系統1) Package(子系統2) Package(子系統3) 問題來了, 當我把DataModule抽離成一個Package時, Design-Time子系統1,2,3的感知元件裡面的DataSource就變成空的, 這樣在Design-Time要如何設計呢? K-Top查了許多資料還是不知道要如何著手, 還是說我整個觀念是錯的? |
frappe
中階會員 發表:88 回覆:114 積分:95 註冊:2008-10-21 發送簡訊給我 |
我已經可以切割系統了,但是又產生新的問題,
<主程式 - exe> frmMAIN - LoadPackage and create 2個bpl <共用ADOConnection - bpl> DataModule裡面只有一個TADOConnection <子系統 - bpl> frmA - Form使用者介面 dmsA - Datamodule 問題: 1 dmsA是由主程式create, 這樣frmA如果要對dmsA寫程式會出現錯誤 (因為dmsA並非frmA Create,無法取得控制權) 2 如果dmsA改由frmA去create,則所有bpl無法共用一個ADOConnection 3 不知道有沒有辦法讓主程式傳值給Package使用,或控制Package的屬性 找Package裡面的物件可以用FindComponent, 不知道有沒有辦法找Package某個物件的屬性 |
anumis
一般會員 發表:25 回覆:27 積分:15 註冊:2006-07-14 發送簡訊給我 |
我是用DLL分割系統
子Form跟主From之間定義一個傳參數的Function 去傳遞要用的共用元件 ex: 子系統 var adoc :TAdoconnect; Param :^TStringList; procedure GetShardComponent(mApp :TApplication; mAdoc :TAdoconnect; pParam :Pointer);register begin Application := mApp; aAdoc := mAdoc; Param := p; end; exports GetShardComponent; 主系統 type GetShardComponent = procedure(mApp :TApplication; mAdoc :TAdoconnect; pParam :Pointer);register 當Dll載入時,就執行GetShardComponent把Application, AdoConnect還有參數表(Param)傳給子系統 記得,當子系統要結束時,記得把Query 及Table等等的 Connect 設成 Nil,不然會出錯 給你參考參考 ===================引 用 frappe 文 章=================== 我已經可以切割系統了,但是又產生新的問題, <主程式 - exe> frmMAIN - LoadPackage and create 2個bpl <共用ADOConnection - bpl> DataModule裡面只有一個TADOConnection <子系統 - bpl> frmA - Form使用者介面 dmsA - Datamodule 問題: 1 dmsA是由主程式create, 這樣frmA如果要對dmsA寫程式會出現錯誤 (因為dmsA並非frmA Create,無法取得控制權) 2 如果dmsA改由frmA去create,則所有bpl無法共用一個ADOConnection 3 不知道有沒有辦法讓主程式傳值給Package使用,或控制Package的屬性 找Package裡面的物件可以用FindComponent, 不知道有沒有辦法找Package某個物件的屬性 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |