+ -
当前位置:首页 → 问答吧 → delphi如何使用无窗体ActiveX控件?

delphi如何使用无窗体ActiveX控件?

时间:2011-10-12

来源:互联网

目前一个项目,用Delphi编写,在输入密码的地方需要使用第三方提供的ActiveX控件,此控件原来是供IE调用的,输入密码的地方对输入进行保护,类似于支付宝的密码框控件,现在使用Delphi调用却发现有点儿问题。我尝试将控件import到delphi的工程里,但是发现这个控件似乎是个无窗体控件,那么无法直接在界面上进行加载使用,但是为什么在IE里加载后就有可输入的编辑框,在delphi里如何实现?还是需要另外的容器来承载这个ActiveX?
导出的_TLB单元我看了一下,TPassEdit = class(TOleControl),继承的是TOleControl,但是它本身似乎并没有什么可以把自己在界面上创建的功能。
目前感到有些迷茫,忘高手指点迷津。

作者: wwllbbfat   发布时间: 2011-10-12

用个TWebBrowser来承载即可

作者: gzzai   发布时间: 2011-10-12

你可以试试CreateOleObject
调用方式:
var 
  aobj : OleVariant; 
begin 
  aobj := CreateOleObject('activeX类名');
  然后可以通过aobj.xxx调用它的属性/方法
这样,即使不用导入任何控件,也可使用activeX控件(用delphi操作excel,word就可用此方法)
另外的方法,可参考:
http://blog.csdn.net/jh_zzz/article/details/1451693
  

作者: keiy   发布时间: 2011-10-12

大侠,这个办法我倒是想过,但似乎这样使用总觉得怪怪的,而且这样用的话,如何跟web上的activex控件交互也是个问题
引用 1 楼 gzzai 的回复:

用个TWebBrowser来承载即可

作者: wwllbbfat   发布时间: 2011-10-12

类的创建是可以创建的,现在的问题是,这个输入框不知道怎么显示不出来啊?
引用 2 楼 keiy 的回复:

你可以试试CreateOleObject
调用方式:
var
aobj : OleVariant;
begin
aobj := CreateOleObject('activeX类名');
然后可以通过aobj.xxx调用它的属性/方法
这样,即使不用导入任何控件,也可使用activeX控件(用delphi操作excel,word就可用此方法)
另外的方法,可参考……

作者: wwllbbfat   发布时间: 2011-10-12