1. 程式人生 > >delphi 組件安裝教程詳解

delphi 組件安裝教程詳解

當前 範例 默認目錄 成功 ftw build 作用 cto proe

學習安裝組件的最好方法,就是自己編寫一個組件並安裝一遍,然後就真正明白其中的原理了。 本例,編寫了兩個BPL, dclSimpleEdit.bpl 與 SimpleLabel.bpl ,其中,dclSimpleEdit.bpl 依賴 SimpleLabel.bpl , 或者說 dclSimpleEdit.bpl 需要 SimpleLabel.bpl 才能運行。這也是多數組件安裝問題之典型! 本例源碼下載(delphi 7) 一、首先在delphi中打開 ComponentStudy 目錄中的 ComponetStudy.bpg ,此為工程組文件。 技術分享圖片 技術分享圖片 二、然後切換到 Project Manager (Ctrl + alt +F11 ) 窗口 技術分享圖片 技術分享圖片
三、在 dclSimpleEditD7.bpl 點右鍵菜單,選擇 Options... 技術分享圖片 技術分享圖片 按上圖設置這兩個目錄,Output directory 是 xxx.bpl 輸出目錄。Dcp output directory 是 xxx.dcp 輸出目錄。 如果不主動設置這兩個目錄,它們默認的目錄是:C:\Program Files (x86)\Borland\Delphi7\Projects\Bpl [在PATH環境變量中,有此目錄信息,後面會說到它的作用] 對 dclSimpleEditD7.bpl 的輸出目錄,做同樣的上述設置(第三步之操作)。 四、在 SimpleLabel.bpl 上,點右鍵,選擇 Build ,即編譯。按同樣方式對 dclSimpleEdit.bpl 進行編譯。 因為dclSimpleEdit.bpl 引用了 SimpleLabel.bpl ,所以,要先編譯前者。對於組件的安裝,需要按順序編譯的原因就在於此。 五、在 dclSimpleEdit.bpl 點右鍵,選擇 install (delphi一般規則是 dcl 開頭表示設計時包,設計時包就可以 install 到 delphi ide 中) (運行時包,本例中的 SimpleLabel.bpl 則不能 install ) 技術分享圖片
技術分享圖片 因為我們在第三步,修改了 BPL 的輸出目錄,所以,install 時就會出現此錯誤。(如果是默認目錄,不會有此錯誤) 當 install 的時候,delphi.exe 加載了 d:\wcp\ComponentStudy\TSimpleEdit\bpl\dclSimpleEdit.bpl 之後, dclSimpleEdit.bpl 會立即加載 SimpeLabel.bpl ,因 BPL 與 DLL 相類似,同屬於動態動行庫,在動態運行庫代碼中, 不易獲得當前自己目錄(不是絕對不能,可以通過其它方法獲取到),所以 dclSimpleEdit.bpl 就會從系統 PATH 環境變量 中的目錄去查找 SimpleLabel.bpl ,如果找不到,則報錯。解決方法就是在 PATH 環境變量中加上 d:\wcp\ComponentStudy\TSimpleEdit\bpl\ 六、以 Win7 64 位為例,演示如何設置 PATH 環境變量 6.1 選中“計算機”,右鍵“屬性”,再選 “高級系統設置” 技術分享圖片
技術分享圖片 6.2 點“編輯”後,在末尾先加上“半角分號”,再輸入 d:\wcp\ComponentStudy\bpl\ 技術分享圖片 技術分享圖片 6.3 可以這樣驗證一下
技術分享圖片 技術分享圖片 6.4 操作完畢之後,重新 delphi ,再 install dclSimpleEdit 就OK了。
技術分享圖片 技術分享圖片 6.5 在組件的 SimpleComponent 標簽中檢查,確認已經安裝成功。PATH 環境變量,在任何操作系統,任何軟件中都重要, 如:java 環境安裝,andorid 等等,請對其有正確的理解。技術分享圖片 技術分享圖片 七,使用此組件。重啟 delphi ,打開 ComponentStudy\UseSimpleEdit\UseSimpleEdit.dpr 並往Form 中拖一個 TSimpleEdit, F9 測試效果。
技術分享圖片 技術分享圖片 本文的重點是講組件安裝,所寫範例代碼也比較簡單。 八、關於各種目錄的設置問題。 8.1 菜單 Tools --> Environment Options..
技術分享圖片 技術分享圖片 8.2 Libray path 技術分享圖片 技術分享圖片
很明顯,已經自動加上了此路徑。此路徑的作用,可以理解為 pas 文件的搜索路徑。 此路徑為全局,對任何工程有效。如果有多個版本的組件共存,可以改變這些目錄的順序, 來設置當前有效的組件版本。 8.3 在 exe 工程中,另一處與此功能相同的路徑, 菜單 proejct -->Options... (Shift + Ctrl + F11) 技術分享圖片 技術分享圖片 技術分享圖片技術分享圖片
此功能為局部,僅屬於本工程使用。同樣的,此單菜中關於 packages 中的選項, 亦有“本工程有效BPL”的功效(請自行研究)。這些設置,在多版本組件同時存在於delphi時非常有用。 九、其它: 9.1 delphi 安裝組件的信息記錄在何處,菜單 Component -->Install Package... 技術分享圖片 技術分享圖片 它實際上存在於註冊表中 [HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Known Packages]技術分享圖片

技術分享圖片

9.2 組件自動安裝包,實際上就是寫註冊表,寫 PATH 環境變量(libray path 目錄信息也是在註冊表中)來實現的。

9.4 多版本組件如何共存。(稍復雜,用處不大,但可行)

a) 要讓它們的 BPL 輸出在不同的目錄中。默認是全部在 C:\Program Files (x86)\Borland\Delphi7\Projects\Bpl , 是不行的(bpl同名的問題),所以各種組件安裝教程,讓大家先刪除掉此目錄中的 *xx*.bpl 等操作原因在此。 (或 PATH 環境變量中所涉及到的目錄,如 Windows\System32\ 等,要在這些目錄中執行刪除 *xx*.bpl 操作) b) 不可同時使用,且要使用 8.2 步驟中改變目錄順序。或者用 8.3 菜單中,的 Package 選項,來增減加載的組件。 十、出錯演示,刪除掉 PATH 環境變量中的 d:\wcp\ComponentStudy\TSimpleEdit\bpl ,重運行 delphi 結果如下 技術分享圖片 技術分享圖片 確定之後
技術分享圖片 技術分享圖片 詢問是否下一次繼續加載。 此信息的意思是, dclSimpleEditD7.bpl 找不到 SimpleLable.bpl ,是否在下一次 加載 dclSimpleEditD7.bpl ?

選擇是,設置好 PATH 環境變量,重啟 delphi 就能正常。 選擇否的結果: 技術分享圖片 技術分享圖片
已經取消勾選。當然,你設置正確 PATH 變量後,重啟後勾上也就可能正常工作了。 (也可以在這裏通過 add 安裝組件) 9.5 如果exe中的組件與安裝的版本不相符合時,會出現版本不同,屬性不存在等提示,通過學習本教程, 相信大家就可以解決此類問題了。 delphi 的組件編寫,組件安裝,是一套很明晰的規則,而很多人,面對此規則的時候,手忙腳亂, 到處搜各種秘籍,方法,然而往往解決不到根本問題。 學習編程知識,一定要從表面現象,洞悉到其原理。這樣才能真正掌握。 又如:delphi各種組件的使用方法,組件千千萬,請問誰學得完? 但是,高手們拿到一個組件,稍加研究,就會使用,這是為什麽? 既要學習“規則,知識小點”,又要上升為“技能,通識”。

delphi 組件安裝教程詳解