問(wèn)題:如何在 Delphi 或 BCB 中使用 VB 做的 ActiveX 控件?
VB:
選擇 "New Project" -> "ActiveX",然后直接編譯成 Project1.OCX
Delphi or BCB:
選擇:"Component"->"Import ActiveX Control..."
在列表中選擇出 Project1 控件(看到提示中 Project1.OCX 沒(méi)問(wèn)題), 按下 "Install.."
提示加入庫(kù),按下 OK, 提示編譯,Yes, Project1_TLB 成功 Loaded, 可無(wú)論在哪里都找不到控件圖標(biāo)。
解答1:點(diǎn)擊Tools菜單->Environment Options->Type Library頁(yè),應(yīng)該發(fā)現(xiàn)一項(xiàng):Ignore special CoClass Flags When Importing,選中它,然后再選中Can Create那一項(xiàng),那么現(xiàn)在,再?lài)L試去導(dǎo)入那個(gè)可憐的ActiveX控件吧(這里要注意,如果你已經(jīng)導(dǎo)入過(guò)一次,那么請(qǐng)把產(chǎn)生的那兩個(gè)文件 .dcr 和 .pas文件刪除,否則將不會(huì)刷新)。這次如果還是不能在ActiveX欄中發(fā)現(xiàn)那個(gè)控件的話,那么只有致電Microsoft或是Borland.
解答2:這個(gè)問(wèn)題搞定了,問(wèn)題出在 VB,由 Borland Newsgroup 解答。
使用 Delphi 打開(kāi) OCX, 看到 CoClass 的"Can Create" 屬性為 False. 改為 True 即可。
具體步驟:
delphi->open ocx(在delphi中顯示為tlb),修改coClass ->can create為T(mén)rue,refresh后將ocx另存為tlb,import 此tlb即可在組件欄中顯示并正常使用??梢允褂迷搊cx中開(kāi)放的接口(屬性或事件等)。
將can create改為T(mén)rue后tlb的變化為在***_tlb.pas中增加了原來(lái)封裝在ocx中的類(lèi)的聲明和原來(lái)pas文件中沒(méi)有的register到組件欄中的函數(shù):
procedure Register;
begin
RegisterComponents(dtlOcxPage, [原OCX中的類(lèi)名]);
end;
聯(lián)系客服