目前一个项目,用Delphi编写,在输入密码的地方需要使用第三方提供的ActiveX控件,此控件原来是供IE调用的,输入密码的地方对输入进行保护,类似于支付宝的密码框控件,现在使用Delphi调用却发现有点儿问题。我尝试将控件import到delphi的工程里,但是发现这个控件似乎是个无窗体控件,那么无法直接在界面上进行加载使用,但是为什么在IE里加载后就有可输入的编辑框,在delphi里如何实现?还是需要另外的容器来承载这个ActiveX?
导出的_TLB单元我看了一下,TPassEdit = class(TOleControl),继承的是TOleControl,但是它本身似乎并没有什么可以把自己在界面上创建的功能。
目前感到有些迷茫,忘高手指点迷津。
导出的_TLB单元我看了一下,TPassEdit = class(TOleControl),继承的是TOleControl,但是它本身似乎并没有什么可以把自己在界面上创建的功能。
目前感到有些迷茫,忘高手指点迷津。
解决方案 »
- N年来最简单的DELPHI界面问题,请帮忙看看.
- 如何实现windows xp操作系统下按钮的样式?使用delphi6.0
- 有谁知道有个缩写路径的API?
- 用登陆窗口进去之后调用主窗口,然后主窗口再调用另一个窗口Show
- 请教一个问题,关于文本文件的!
- 在一个dbgird中同时进行两个表的录入(在线等待)
- 巨难问题!!--Access动态建库,然后动态建表,内详!只要解决,马上给分!!
- PopupMenu如何知道是由哪一个控件激活的(几个控件共用一个PopupMenu)
- 请大家帮个忙吧
- 求助关于delphi中sendmessage问题
- ini读取combox的问题
- delphi6 dbExpress 远程连接FireBird问题
调用方式:
var
aobj : OleVariant;
begin
aobj := CreateOleObject('activeX类名');
然后可以通过aobj.xxx调用它的属性/方法
这样,即使不用导入任何控件,也可使用activeX控件(用delphi操作excel,word就可用此方法)
另外的方法,可参考:
http://blog.csdn.net/jh_zzz/article/details/1451693
在IE里加载进去就直接显示出密码输入框了,在Delphi里我真就不知道怎么办了
第一种也就是楼上几位说的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的只能用第二种方法。