delphi 組件安裝教程詳解

學習安裝組件的最好方法,就是本身編寫一個組件並安裝一遍,而後就真正明白其中的原理了。
 
本例,編寫了兩個BPL, dclSimpleEdit.bpl 與 SimpleLabel.bpl ,其中,dclSimpleEdit.bpl 依賴 SimpleLabel.bpl ,
或者說 dclSimpleEdit.bpl 須要 SimpleLabel.bpl 才能運行。這也是多數組件安裝問題之典型!
 
 
1、首先在delphi中打開 ComponentStudy 目錄中的 ComponetStudy.bpg ,此爲工程組文件。
 
2、而後切換到 Project  Manager (Ctrl + alt +F11 ) 窗口
 
3、在 dclSimpleEditD7.bpl 點右鍵菜單,選擇 Options...
 
按上圖設置這兩個目錄,Output directory 是 xxx.bpl 輸出目錄。Dcp output directory 是 xxx.dcp 輸出目錄。
若是不主動設置這兩個目錄,它們默認的目錄是:C:\Program Files (x86)\Borland\Delphi7\Projects\Bpl
[在PATH環境變量中,有此目錄信息,後面會說到它的做用]
對 dclSimpleEditD7.bpl 的輸出目錄,作一樣的上述設置(第三步之操做)。
 
4、在 SimpleLabel.bpl 上,點右鍵,選擇 Build ,即編譯。按一樣方式對 dclSimpleEdit.bpl 進行編譯。
由於dclSimpleEdit.bpl 引用了 SimpleLabel.bpl ,因此,要先編譯前者。對於組件的安裝,須要按順序編譯的緣由就在於此。
 
5、在 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\
 
6、以 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、關於各類目錄的設置問題。
8.1 菜單 Tools --> Environment Options..
8.2 Library path

很明顯,已經自動加上了此路徑。此路徑的做用,能夠理解爲 pas 文件的搜索路徑。
此路徑爲全局,對任何工程有效。若是有多個版本的組件共存,能夠改變這些目錄的順序,
來設置當前有效的組件版本。
 
8.3 在 exe 工程中,另外一處與此功能相同的路徑, 菜單 proejct -->Options... (Shift + Ctrl + F11)
 
此功能爲局部,僅屬於本工程使用。一樣的,此單菜中關於 packages 中的選項,
亦有「本工程有效BPL」的功效(請自行研究)。這些設置,在多版本組件同時存在於delphi時很是有用。
 
9、其它:
9.1 delphi 安裝組件的信息記錄在何處,菜單 Component -->Install Package...
它實際上存在於註冊表中 [HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Known Packages]

 

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

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 選項,來增減加載的組件。
 
10、出錯演示,刪除掉 PATH 環境變量中的 d:\wcp\ComponentStudy\TSimpleEdit\bpl ,重運行 delphi 結果以下
     
肯定以後
詢問是否下一次繼續加載。
此信息的意思是, dclSimpleEditD7.bpl 找不到 SimpleLable.bpl ,是否在下一次
加載 dclSimpleEditD7.bpl ?

 

選擇是,設置好 PATH 環境變量,重啓 delphi 就能正常。
選擇否的結果:

已經取消勾選。固然,你設置正確 PATH 變量後,重啓後勾上也就可能正常工做了。
(也能夠在這裏經過 add 安裝組件)
9.5 若是exe中的組件與安裝的版本不相符合時,會出現版本不一樣,屬性不存在等提示,經過學習本教程,
相信你們就能夠解決此類問題了。
 
delphi 的組件編寫,組件安裝,是一套很明晰的規則,而不少人,面對此規則的時候,手忙腳亂,
處處搜各類祕籍,方法,然而每每解決不到根本問題。
 
學習編程知識,必定要從表面現象,洞悉到其原理。這樣才能真正掌握。
又如:delphi各類組件的使用方法,組件千千萬,請問誰學得完?
可是,高手們拿到一個組件,稍加研究,就會使用,這是爲何?
 
既要學習「規則,知識小點」,又要上升爲「技能,通識」。
 
後記:
2018.5.02晚,delphi 2007,安裝 UniDAC 組件。
1.已用多種方法安裝過,IDE中同時存在2套 UniDAC ,刪之,重裝不行。
2.根據報錯信息,發現是 DbGridEh 組件,對 dac105.bpl 有 hook 或是調用。
   可能緣由:
     a) DbGridEh 組件,在調用數據庫驅動組件的時候,用了全局path,直接加載了 dac105.bpl
     b) 也多是 dbgridEh 調用了同名( dac105.bpl )
     c) DBGridEh 有 hook 操做。
3.刪掉 DBGridEh 組件,安裝UniDAC, OK.
4.重安裝另外一版 DBGridEh ,OK
所用到的方法,均在本文說起,靈活運用便可。
相關文章
相關標籤/搜索