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

wwllbbfat 2011-10-12 05:34:20
目前一个项目,用Delphi编写,在输入密码的地方需要使用第三方提供的ActiveX控件,此控件原来是供IE调用的,输入密码的地方对输入进行保护,类似于支付宝的密码框控件,现在使用Delphi调用却发现有点儿问题。我尝试将控件import到delphi的工程里,但是发现这个控件似乎是个无窗体控件,那么无法直接在界面上进行加载使用,但是为什么在IE里加载后就有可输入的编辑框,在delphi里如何实现?还是需要另外的容器来承载这个ActiveX?
导出的_TLB单元我看了一下,TPassEdit = class(TOleControl),继承的是TOleControl,但是它本身似乎并没有什么可以把自己在界面上创建的功能。
目前感到有些迷茫,忘高手指点迷津。
...全文
224 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
whisht 2011-10-17
  • 打赏
  • 举报
回复
http://blog.csdn.net/ljz9425/article/details/6042599
nm_wyh 2011-10-17
  • 打赏
  • 举报
回复
看了半天,不知道你要实现什么功能。但是在IE里显示无窗体或有窗体的ActiveX控件写法是不一样的,有两种方法加载ActiveX控件。如下:
第一种也就是楼上几位说的CreateOleObject就可以,但是这种方法只适用于加载无窗体控件,对于有窗体的控件,它无能为力,即使显示也是在IE之外弹出一个窗体,而不是嵌入到IE中的。
第二种方法就是在页面中直接嵌入,即如下代码:
<object id='FPInfo' classid='clsid:7FF09115-BEB7-4873-BD5B-D621D91619BF'>
</object>
其他classid就是你控件的唯一标识号。上面这个还可以写成这样 <object id='FPInfo' classid='clsid:7FF09115-BEB7-4873-BD5B-D621D91619BF' codebase="ActiveX.cab#Version=1,0,0,0"> </object>

以上两种的区别在于多了一个CodeBase的属性设置。这个是属性是用来指定从那个地址下载控件,并且下载的版本号是多少。但是这种方法限制性很大,如果控件没有签名,那就更麻烦了。还不如手动安装。

如果不设置这个属性,IE默认会到System32下去找注册的ActiveX控件(需要事先安装注册)。

这两种方法都可以加载无窗体的控件,但是有窗体的并且想要嵌入IE的只能用第二种方法。

wwllbbfat 2011-10-16
  • 打赏
  • 举报
回复
就是想知道这类ActiveX对象是不是需要个容器?
在IE里加载进去就直接显示出密码输入框了,在Delphi里我真就不知道怎么办了
zhaodog 2011-10-13
  • 打赏
  • 举报
回复
你可以看看TPassEdit 有什么方法呀,是不是那个方法可以让他显示
wwllbbfat 2011-10-13
  • 打赏
  • 举报
回复
请各位高手给些指点啊
wwllbbfat 2011-10-12
  • 打赏
  • 举报
回复
类的创建是可以创建的,现在的问题是,这个输入框不知道怎么显示不出来啊?[Quote=引用 2 楼 keiy 的回复:]

你可以试试CreateOleObject
调用方式:
var
aobj : OleVariant;
begin
aobj := CreateOleObject('activeX类名');
然后可以通过aobj.xxx调用它的属性/方法
这样,即使不用导入任何控件,也可使用activeX控件(用delphi操作excel,word就可用此方法)
另外的方法,可参考……
[/Quote]
wwllbbfat 2011-10-12
  • 打赏
  • 举报
回复
大侠,这个办法我倒是想过,但似乎这样使用总觉得怪怪的,而且这样用的话,如何跟web上的activex控件交互也是个问题[Quote=引用 1 楼 gzzai 的回复:]

用个TWebBrowser来承载即可
[/Quote]
柯本 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

广州佬 2011-10-12
  • 打赏
  • 举报
回复
用个TWebBrowser来承载即可

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧