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

如何引用VB寫的含UI介面的DLL或OCX控制項元件?

尚未結案
asupeduer
初階會員


發表:36
回覆:49
積分:27
註冊:2002-11-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-21 16:09:29 IP:210.244.xxx.xxx 未訂閱
小弟需要引用一個VB寫的DLL檔,把該dll註冊後,import type libary,是一個含有視覺化介面的東西,但該dll加入到bcb的元件頁面後,我另開啟一個form,卻是不含視覺化介面的元件,不知如何把該視覺化物件秀出來,或是我的做法不對呀? 但我換了一個方式,在vb新增一個ActiveX控制項,裡面放了一個按鈕控制項,再把該檔案編譯成ocx檔案,然後把該ocx註冊到系統,也用同樣的方法Import Type Libary,但這時,它卻無法顯示在bcb的VCL元件頁面上,不知道是哪個步驟錯了?或是我用另依種方法,用Component|Import ActiveX Control,也是同樣的結果,無法將該控制項顯示在元件頁面,是我的做法錯在哪呢? 感恩感恩 //------------------------------------------------ 我常在想,寫程式跟爬格子到底有什麼不同呢??????????? //------------------------------------------------
------
//------------------------------------------------
我常在想,寫程式跟爬格子到底有什麼不同呢???????????
//------------------------------------------------
RaynorPao
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-21 16:34:18 IP:61.221.xxx.xxx 未訂閱
引言: 小弟需要引用一個VB寫的DLL檔,把該dll註冊後,import type libary,是一個含有視覺化介面的東西,但該dll加入到bcb的元件頁面後,我另開啟一個form,卻是不含視覺化介面的元件,不知如何把該視覺化物件秀出來,或是我的做法不對呀? 但我換了一個方式,在vb新增一個ActiveX控制項,裡面放了一個按鈕控制項,再把該檔案編譯成ocx檔案,然後把該ocx註冊到系統,也用同樣的方法Import Type Libary,但這時,它卻無法顯示在bcb的VCL元件頁面上,不知道是哪個步驟錯了?或是我用另依種方法,用Component|Import ActiveX Control,也是同樣的結果,無法將該控制項顯示在元件頁面,是我的做法錯在哪呢?
asupeduer 你好: 看來你的問題一直都還沒有解決 一年前我也做過這樣子的實驗 但是~~一直都無法成功(直到現在) 我也在網路上搜尋過這方面的相關資料 卻好像~~從來沒有人這樣做過 因此~~不禁讓我懷疑這種方式的可行性?? 不知道哪一位大大知道該怎麼做呢?? 還是~~這種方式根本是無法辦到的?? 備註: 因為上述的前因後果~~ 如果想把 VB 寫的 COM(有 UI) 在 BCB 中使用 我是比較不建議這樣子做(因為也不知道該如何做??) 如果想把 > --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-21 21:39:24 IP:211.74.xxx.xxx 未訂閱
我所知道的是~~ VB 所建立的dll 在設計時期所加入的Form 無法被使用 不知是不是因activeX dll 以公寓式的執行緒執行,無法接受強制性回應的表單在其中?? 含UI,也許使用ocx 會更適合 若是要實現dll內可顯示表單,用Delphi /BCB 建立dll 是可達成的(此dll不屬ActiveX DLL類)    ps:前幾天生病也沒有幫你處理不好意思,我再幫你找看看相關資料吧~~    =============================================================================== 提醒您,貼錯文章可立即傳訊通知該版版主/站長/副站長協助處理,不要放著不管喔 發表人 -
asupeduer
初階會員


發表:36
回覆:49
積分:27
註冊:2002-11-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-21 23:45:03 IP:210.244.xxx.xxx 未訂閱
先感謝ddy大哥跟RaynorPao 大大的協助, 這樣說好了,如果我用vb開發一個ActiveX控制項,再登入到系統裡, 是可以用vb呼叫,就是用vb裡面放入原本開發的控制項。 但是如果放到bcb或Delphi好像就沒辦法顯示,但是,這樣並不合理呀? 為什麼有些vb本身的同樣activeX控制項或類似MS CE的控制項加到bcb 裡面還是可以顯示UI介面? 另外不知ddy所說的「activeX dll 以公寓式的執行緒執行」是什麼呢? 其實跟專案負責人討論過後,其實不一定要有UI啦,只是有點困擾, 為啥ocx也沒辦法呢? 那RaynorPao大哥說的如果無UI介面,是怎麼做呢? 因為那件專案的該dll檔案是比照兩個word檔案的相似程度(考試檢核) 且該dll已經開發了兩年多,相當複雜的一個word判斷引擎。 雖然還沒看到那個dll,也不知他們要提供哪些in/out put參數, 但我還是得先自己先搞清楚,不然下禮拜專案會議被「搓破了」,就不好看說。 如果說我要用vb寫一個判斷式判斷某excel上的圖表, 程式碼簡略如下︰ Dim XLobj As Excel.Application Set XLobj = GetObject(, "Excel.Application") '指定該圖表 XLobj.Application.Charts(1).Select XLobj.ActiveChart.ChartArea.Select '以下為判斷式 If XLobj.ActiveChart.ChartType = xl3DColumnClustered Then MsgBox "為立體長條圖形" Else MsgBox "不是立體長條圖形" End If 那如果我要寫成input參數為該Excel檔案路徑, out put為陣列[i]如︰ ---------------------------- 立體長條圖 true 數值縱軸列數為3 false 標題字型標楷體 true 標題字型為12 true ...... (因為要把回傳值傳回資料庫做紀錄,或有更好的方法嗎?) 那我該怎麼寫該vb的dll呢? 以及如果用bcb或delphi該如何引用呢? 再次感謝前輩的幫忙 //------------------------------------------------ 我常在想,寫程式跟爬格子到底有什麼不同呢??????????? //------------------------------------------------ 發表人 - asupeduer 於 2002/12/22 00:00:39
------
//------------------------------------------------
我常在想,寫程式跟爬格子到底有什麼不同呢???????????
//------------------------------------------------
Register
一般會員


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

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