合併BPL包圖文教程

 Delphi IDE 本身就是一個插件模式的工具,插件的好處不用多說。運行包的BPL,其實就是衆多單元的集合,因此可以再次重新組合,只要你將各個BPL包用到的單元再組合一次!

本文以  http://code.google.com/p/tangram-plugin-framework/ 插件框架自帶的BPL包合併嚮導工具做一次圖文介紹!

 

1、安裝好開源插件框架 tangram-plugin後,然後點擊 菜單 File->New->Others,找到tangram FrameWork裏的包合併嚮導,

2、Dev控件堪稱獨孤求敗,最強也是最肥的數據庫解決方案。我們以Dev套件包爲準,合併Dev幾十個BPL包爲一個BPL包。

這裏用到dev功能是cxGirid,treelist和垂直表格,如果用到其他的功能,涉及的BPL會有所不同!

選擇單元

3、生成DPK工程,改名爲Dev.BPL,記得保存。DPK文件如果沒有生成,請先帶一個空白工程,然後再用嚮導生成DPK,即重複上面的步驟。生成DPK後,再移除原來的DPR工程。

4、有可能碰到重複的單元,已經在別的包被引用了,我們的原則是,只封裝Dev的單元。

(Dev的單元名好區分,都是以cx或dx打頭。)比如sysInit,在 contains 按 CTRL+Y刪除即可。

 

5、編譯會提示,我們新的Dev包,引用到其他單元,在不同的BPL裏。選擇View details可以查看引用到詳細單元。

按“OK”按鈕,將引用到的其他包名(BPL),記錄在 Dev.DPK裏的require 區域。

6、輸出BPL和DCP目錄,最好是當前目錄下,否則又要去delphi的DCP和BPL目錄查找,太麻煩。這兩個目錄輸入“點”字符:“.”,表示當前路徑。


7、按Build 編譯,生成Dev.BPL和Dev.DCP在當前路徑下。新的Dev.BPL爲 9M左右,比楊玉環還肥。


8、我們用ASPACK給BPL減肥一下,大概可以壓縮到只有53%大小,只有4M多,減肥效果明顯。
9、我們做一個簡單的例子,將新的BPL和DCP放在EXE當前目錄下。配置工程選項,選擇Packages,在Build with runtime packages裏輸入

vcl;rtl;dev。這裏必須要說一下 vcl;rtl 這兩個包是delphi的核心運行包,尤其是基於DLL插件的框架,如果帶包編譯,必須少不了這2個包。引用vcl;rtl 這2個包,避免了很多DLL的麻煩和痛苦,如焦點切換,application共享等問題。

運行後,程序正確。新的EXE只有700K不到,經過ASPACK壓縮後,只有200多K。

點評:BPL合併方式,簡化了發佈程序帶來的痛苦,可以將系統的BPL和第三方的BPL各自合併。新的BPL並不影響原來的BPL或者第三方控件的開發環境,這只是運行包而已,在發佈的時候帶上即可。任何綠色插件程序文件,一般都會放在當前目錄,儘量避免丟到syste32目錄,這是微軟windows的一個操作惡習,將系統目錄當成垃圾桶。delphi的插件模式簡單而透明,不會依賴系統,相反,.Net 4.0自帶的發佈版FrameWork,40多M,安裝後目錄上百兆,而且狂寫系統註冊表。.Net框架不會給你綠色試用,這已經違背了綠色軟件的原則。註冊表臃腫的後果,windows會越來越慢。    

       相信原生程序和託管程序之爭會一直延續下去。.net似乎已經沒有搞頭,只有不停在語法上折騰,而折騰的後果,導致程序兼容性不夠好(兼容性比JDK差多了)。如果你的操作系統自帶了衆多.Net 版本呢:1.0/1.1/2.0/3.0/3.5/4.0........XXX.0,每個.Net版本還有小版本號,諸如SP1,SP2,SP3等,請不要奇怪。未來的windows8/windows9/WIN X。。。。,Net框架加上加上幾萬種的驅動程序,windows上百G安裝大小並不奇怪。.Net發佈複雜性還在於捆綁在操作系統上,有些特殊功能必須在windows上配置,而且需要管理員的權限。

      簡單而簡潔,這是一切應用程序的基本要求。微軟,請不要將.net 演變成 COM/COM+,請給我們一個簡單而簡潔,高效又安全的操作系統環境!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章