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

請教如何用bcb引用vb所寫的.ocx

尚未結案
john0620
一般會員


發表:38
回覆:17
積分:11
註冊:2003-07-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-03 09:43:40 IP:211.75.xxx.xxx 未訂閱
大家好...    因為公司最近買了一台儀器.....    所附的sample程式是用vb寫的...    在vb的程式中..他引用了一些寫好的.ocx檔(含UI)..    這些.ocx是設定儀器內部的參數...    我想將.ocx引用到bcb使用...    請問我該如何做...    謝謝大家的幫忙....
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-03 10:03:38 IP:203.73.xxx.xxx 未訂閱
引言: 大家好... 因為公司最近買了一台儀器..... 所附的sample程式是用vb寫的... 在vb的程式中..他引用了一些寫好的.ocx檔(含UI).. 這些.ocx是設定儀器內部的參數... 我想將.ocx引用到bcb使用... 請問我該如何做... 謝謝大家的幫忙.... < face="Verdana, Arial, Helvetica"> john0620 你好: 請先參考以下的連結文章
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
john0620
一般會員


發表:38
回覆:17
積分:11
註冊:2003-07-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-03 10:20:20 IP:211.75.xxx.xxx 未訂閱
我用 Menu 上的 Project ==> Import Type Library    想把.OCX 加入....但出現錯誤畫面..無法繼續Install..    如下...
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-03 23:53:44 IP:61.221.xxx.xxx 未訂閱
引言: 我用 Menu 上的 Project ==> Import Type Library 想把.OCX 加入....但出現錯誤畫面..無法繼續Install.. 如下...
john0620 你好: 據小弟我所知,如果這個 ActiveX 是用 Visual C++/C++ Builder 寫的話,那 應該不會有這個問題;可是,如果這個 ActiveX 是用 Visual Basic 寫的話, 那問題可就大了 (小弟我以前也試過,不過從來沒有成功)。建議你詢問這個 ActiveX 的作者,問問他是用哪一種開發工具寫的 --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
john0620
一般會員


發表:38
回覆:17
積分:11
註冊:2003-07-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-04 21:01:43 IP:203.204.xxx.xxx 未訂閱
RaynorPao大哥您好:    如果這個 ActiveX 是用Visual Basic 寫的話..    請問我可以在VB的軟體中再將這個.OCX轉成.DDL...    再給BCB使用...這樣的方式可以嗎?.....    謝謝大家的幫忙...
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-05 20:49:40 IP:61.221.xxx.xxx 未訂閱
引言: RaynorPao大哥您好: 如果這個 ActiveX 是用Visual Basic 寫的話.. 請問我可以在VB的軟體中再將這個.OCX轉成.DDL... 再給BCB使用...這樣的方式可以嗎?..... 謝謝大家的幫忙... < face="Verdana, Arial, Helvetica">
john0620 你好:
(1)你的想法~~可能會碰到問題的,因為你所說的檔案的副檔名是 *.OCX,因此
   代表這個 ActiveX 是有 UI 的 (通常副檔名為 OCX 的 ActiveX 有 UI;而
   副檔名為 DLL 的 ActiveX 則無 UI),而這個 UI 會需要一個 Parent (例
   如: Form1,或者是某個網頁),才能夠開始它的生命周期直到結束;所以,
   如果你用另外一個 DLL (這裡指的 DLL 是指 Win32 Dynamic Link 
   Library,不是指 ActiveX DLL) 來代為呼叫這個 ActiveX OCX 的話,那該
   如何在設計期/執行期把這個 ActiveX OCX 的 UI 貼到 Form1 上呢??
(2)小弟我建議第一種方式,是乾脆利用 VB 寫一個簡單的 Application (EXE)
   ,裡面包含一個 Form,Form 上貼著這個 ActiveX OCX,讓你的 BCB 寫的
   Application 來呼叫這個 VB 寫的 Application (可以利用 CreateProcess
   的方式,在本站可以找到相關的文章),至於傳回值或著傳回資料,也可以利
   用自己定義的方式來達成 (例如: temp file, registry, ini file...)。這
   種方式的缺點就是資料的傳遞比較麻煩,要好好的規劃一下,優點是原本的
   程式碼不用修改太多
(3)第二種方式就是乾脆利用 BCB 重新寫一個 ActiveX OCX (利用 BCB 中的
   ActiveForm),先要把 VB ActiveX OCX 中的演算法部分截取出來,自行轉成
   BCB 的語法,加入 BCB 建立的 ActiveForm Project 裡面,至於 UI 的部分
   就依樣畫葫蘆即可。這種方式的缺點就是程式碼必須全面翻新重寫,算是大
   工程了吧,優點是寫好以後,可以直接由 BCB Import Type Library,資料
   的傳遞也不用特別另外處理
(4)說完了,有關上述的所有關鍵字,善用本站的資源,都可以找到這方面的相
   關資料,而且,現在市面上有關 BCB 的書籍也很多,建議你花時間多逛逛書
   店,可以得到很多收獲的
    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
john0620
一般會員


發表:38
回覆:17
積分:11
註冊:2003-07-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-06 10:51:03 IP:203.204.xxx.xxx 未訂閱
RaynorPao大哥您好:      謝謝你詳細的說明與建議....   我之前有嘗試過你說的(2)方法--用BCB去呼叫寫好的VB.exe..   但量測不同的參數與項目就需要不同的VB.exe..(可能需要好幾個)   所以每次用BCB去呼叫VB.exe時(VB中的.ocx有個commmand當執行量測時需和儀器連結..時間要到5sec)...   這樣的耗費時間(VB.exe*5sec+實際量測sec)和當初所要的時間是相衝突的....   看來我只好想辦法嘗試用你說的(3)方式啦...< > 謝謝大家的幫忙...< >
Register
一般會員


發表:5
回覆:13
積分:3
註冊:2004-03-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-17 09:28:54 IP:218.15.xxx.xxx 未訂閱
引入控件之前必须进行如下设定: 如点击Tools菜单->Environment Options->Type Library页,应该发现一项:Ignore special CoClass Flags When Importing,选中它,然后再选中Can Create那一项,(这里要注意,如果你已经导入过一次,那么请把产生的那两个文件 .dcr 和 .pas文件删除,否则将不会刷新)。否则不能出现图标。
系統時間:2024-07-03 5:15:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!