線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1190
推到 Plurk!
推到 Facebook!

Package 的疑問?

尚未結案
thomas0728
中階會員


發表:112
回覆:260
積分:89
註冊:2002-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-04 19:01:10 IP:203.73.xxx.xxx 未訂閱
研究了好幾天 Delphi 的 Package 的用法,還是疑雲重重,找了站上的文章看,總覺得語焉不詳,特此與大家分享我的疑雲,不知是否有那位大大能解我疑雲 背景: 1.一支主程式,執行時會自己比對 FTP 伺服端的 BPL 檔案,如有新版則自動下載新的 BPL 2.主程式下載完新檔案後,要去 Call Package1.bpl 裡的方法,執行某一段程式 3.Package1.bpl 又會去 Call Package2 裡的方法,打開某個 form 觀念: 1.如果將主程式專案裡的 Project->option->package 裡的 Builder with runtime packages 裡打勾,如果把 package1.bpl及 package2.bpl 列在裡面,就是靜態載入,否則就是動態載入 2. 在 package1.bpl 裡的 requires 裡如果有 package2.bpl 就是靜態載入 否則就要動態載入 問題來了: 1. 靜態載入與動態載入 是否只差別在前者不用 LoadPackage 就可使用 PACKAGE 裡的物件或變數,動態載入 一定要用 LoadPackage 載入,問題是所謂的靜態載入 是什麼意思?是否除了程式在編譯時需找的到 .BPL 外,也意謂著靜態載入的程式碼,會在主程式編譯時就已連結進主程式,往後如果只是單純的更改 BPL,主程式依然不會受影響 1.動態載入的二個 PACKAGE 如何互相參考對方的物件及方法,是否只能有如下的做法 LoadPackage('Package2.bpl'); cs1 := GetClass('TListAppsOnWindows'); if cs1<>nil then begin Application.CreateForm(TComponentClass(cs1), fm1); fm1.sHOW; end; 我如果在 TListAppsOnWindows 裡有一個自訂的方法,如 HTTPGETDATA; 我該如何 CALL 到,是否要在 USES 裡加上該 UNIT,但這樣會不會變成靜態連 結,PACKAGE 配合自動更新的功能,確實能為系統帶來無比的更利性,但如像說明資料不多,反而造成困擾 不知有那位大大知道以上這些問題 謝謝 如果愛情也有味覺 那麼 有沒有ㄧ種愛 微微泛酸 不太苦澀 有點甜密 嚐起來的滋味讓人想起幸福 Thomas Chiou
------
Thomas Chiou
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-14 21:01:47 IP:61.64.xxx.xxx 未訂閱
沒錯!! 1.所謂靜態載入,就是把*.bpl的程式碼鏈結到主程式中,所以相對的 主程式會變得很大(這也是我們之所以要選擇動態載入的原因之一) 除非你重新Compiler主程式,否則主程式不受已經更版的BPL的影響!! 2.至於"動態載入的二個 PACKAGE 如何互相參考對方的物件及方法" 個人視覺得你要把兩個Package相依性高的功能另行拆解,因為使用 動態載入著重的就是將每一個Package都當成為一個獨立模組,採取 相依性太高的設計,反而失去了Package的優勢,不如就使用靜態載入 來的好!! 努力不一定成功 , 不努力一定不成功!!
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-14 21:02:19 IP:61.64.xxx.xxx 未訂閱
沒錯!! 1.所謂靜態載入,就是把*.bpl的程式碼鏈結到主程式中,所以相對的 主程式會變得很大(這也是我們之所以要選擇動態載入的原因之一) 除非你重新Compiler主程式,否則主程式不受已經更版的BPL的影響!! 2.至於"動態載入的二個 PACKAGE 如何互相參考對方的物件及方法" 個人是覺得你要把兩個Package相依性高的功能另行拆解,因為使用 動態載入著重的就是將每一個Package都當成為一個獨立模組,採取 相依性太高的設計,反而失去了Package的優勢,不如就使用靜態載入 來的好!! 努力不一定成功 , 不努力一定不成功!!
系統時間:2024-05-17 12:42:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!