码迷,mamicode.com
首页 > 编程语言 > 详细

javascript 调用delphi封装的OCX控件·

时间:2018-12-03 01:04:27      阅读:513      评论:0      收藏:0      [点我收藏+]

标签:rar   roc   函数名   read   刷新   ros   title   explorer   bsp   

 

 

 

 

1、delphi 7 新建一个工程选择如下类型

技术分享图片

2、设置OCX名称

技术分享图片

3、增加函数"view"->"Type Library"

技术分享图片

4、设置函数名称

技术分享图片

5、设置函数返回值与入参(注意 返回参数不要使用 * 因为地址传递无法跟浏览器交互 我是这么理解的,亲测也确实没调用成功)

入参为 in 出差 是out 跟retval

技术分享图片

6、点下上面两个小箭头的刷新按钮,就在Impl文件生成了代码,然后填充你的代码就可以了

 技术分享图片

 

 

 

 技术分享图片

 7、编译与注册DLL 

regsvr32 E:OCXDelphi\ReaderOCProj.ocx 

反注册命令 如下(重新改了 先反注册 然后重新注册)
regsvr32 /u E:OCXDelphi\ReaderOCProj.ocx 

8、编写 html测试用例(我保存的名字叫 ZZZ.html )

 <html>   
<head> 
<script type="text/JavaScript" language="javascript"> 
function show(string1)
{
alert(‘123‘);
var obj = document.getElementById("TReaderOCX");
alert(obj);
var ret = obj.HelloWorld(string1);
alert(ret);
}
</script>
<title>测试</title>   
</head>   
<body> 
<object id="TReaderOCX" width="" height="" classid="clsid:6BF75C69-5B10-4BC9-9800-E137A4D0EAF6"></object> 
<input type="button" id="btn1" name="btn1" value="调用ocx" title="调用ocx" 
onclick="show(‘晶奇‘)"></input>
</body>   
</html> 
其中  classid可以在 TLB 文件 搜下 ClassID 找到
技术分享图片

 

 TReaderOCX 为类名称 实现的函数 每个都是这个开头的

技术分享图片

 8、设置启动项 

 技术分享图片

9、测试

注意:如果是IE8,则会出现无法进入断点的情况。

解决方法: 修改注册表

regedit→ HKEY_LOCAL_MACHINE →SOFTWARE→Microsoft →   Internet Explorer→Main。在Main里新建一个DWORD类型名为TabProcGrowth值为0。

另一种解决方法:delphi7的ocx对应的tlb文件顶部有一个{$VARPROPSETTER ON},把这个开关去掉重新编译注册就可以了

 技术分享图片

 

 本文在  https://www.cnblogs.com/tc310/p/4816590.html 基础上增加了调试内容 感谢tc310 博主的分享

javascript 调用delphi封装的OCX控件·

标签:rar   roc   函数名   read   刷新   ros   title   explorer   bsp   

原文地址:https://www.cnblogs.com/530263009QQ/p/10055823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!