BCB2007 的發布是一件令人振奮的事情,它強大的功能和良好的穩定性讓我決定從BCB6.0 轉向2007。
BCB2007 的變化還是比較大的,它不能像6.0那樣方便地安裝我們的ActiveX 控件,甚至有些網友說它根本不能安裝ActiveX 控件,這樣導致了廣大網友對BCB2007的不滿。BCB2007真的無法安裝我們的ActiveX 控件嗎? 答案是:可以安裝。
詳細的安裝方案看下面的描述吧,有2個方案。
【方案一】
條件:安裝有BCB6.0 和 BCB2007
步驟:
(1)
這裡我們用flash 控件 ShockwaveFlash.ocx 做例子。 用BCB6.0 添加需要安裝的ActiveX 控件ShockwaveFlash.ocx(這裡省卻過程,大家都會的了,不會的看網絡教程),注意,我們將其安裝到新組件包skShockFlash.bpk中,編譯安裝通過後就是我們的關鍵工作了。
(2)
將剛才生成的幾個文件找出來,它們在BCB安裝目錄的Imports的子目錄(比如 C:\Program Files\Borland\CBuilder6\Imports),這幾個文件是:
ShockwaveFlashObjects_OCX.cpp ShockwaveFlashObjects_OCX.h
ShockwaveFlashObjects_TLB.cpp ShockwaveFlashObjects_TLB.h
將這些文件復制出來,放到一個目錄去(比如:F:\BCB2007_Add_OCX\flashocx\),然後開啟BCB2007 ,准備在它裡面安裝我們的ShockwaveFlash.ocx 。
(3)
打開BCB2007 後,新建一個組件包工程:File-->New-->Other... 選擇 Package 。如圖1:
圖1:新建 Package 工程
新建組件包工程後,我們在未修改之前保存工程名為 skFlash 。保存到上面步驟2中說的目錄中去(F:\BCB2007_Add_OCX\flashocx\)。這樣一來,工程就跟我們剛才的那四個文件在同一目錄了圖2。
附帶保存前後工程的結構圖,圖3(左)的默認工程結構 和 保存後(右)的默認結構。
圖2:工程文件目錄
// 本文轉自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=1027&d=a5e8r3
圖3:工程結構
(4)
我向組件包添加我們的需要的組件:在 skFlash.bpl 上右鍵--Add ,選擇我們的剛才4 個文件中2 個CPP 文件,見圖4:
圖4 選擇組建文件
添加之後我們可以看到新的文件結構,圖5。
圖5 添加完組件文件
(5)
此時,我們可以進行編譯和安裝了。skFlash.bpl 上右鍵-->Build ,編譯通過後,我們再次右鍵-->Install ,安裝成功後即可使用!
(6)
注意,安裝完畢記得將 h 文件 加入BCB的 搜索目錄, 或者直接復制到 Include 目錄。
【方案二】
條件:僅僅安裝有BCB2007
注意:本方案 跟BCB2007 版本有關!我的版本是:Version 11.0.2709.7128 。如果版本不同,本方案不行的話請參考方案一!
步驟:
(1)
菜單 Component --> Import Component ,打開Import Component 向導對話框,選擇 Import ActiveX Control ,下一步,選擇 ShockwaveFlash 之後,下一步,設置工程文件的保存位置,這裡是 E:\CodeGear\RAD Studio\5.0\Imports, 繼續下一步,直到完成。
(2)
此時並沒有我們想像中的工程,只有一個cpp 文件顯示在界面上。這個CPP 文件就在剛才我們保存的目錄下:E:\CodeGear\RAD Studio\5.0\Imports\。
我們新建一個組件工程(詳細步驟見方案一),保存在E:\CodeGear\RAD Studio\5.0\Imports\ ,名為 skFlash2 。此時剛才的cpp文件也在此目錄下,
參考方案一,將它們添加進來安裝即可使用!
(3)
注意,用BCB2007 生成的 cpp 文件可能編譯不過,解決方如下:
首先在 ShockwaveFlashObjects_OCX.cpp 和ShockwaveFlashObjects_OCX.h 文件中,去掉 TFlashObjectInterface 和 TFlashProp 這2個類的相關代碼即可編譯通過,安裝成功。
其次在 ShockwaveFlashObjects_OCX.cpp 中文件末尾 Register 函數中去掉 注釋 “// [2]”之後的 注冊代碼即可。如下圖:
【運行效果】