javascript 调用delphi封装的OCX控件·

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 博主的分享

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

时间: 2024-11-08 21:23:50

javascript 调用delphi封装的OCX控件·的相关文章

JS调用Delphi编写的OCX控件

原文:http://www.mamicode.com/info-detail-471283.html 一.使用Delphi XE2编写OCX控件 生成OCX工程: 1.File-New-Other,在New Items对话框中选择Delphi Projects-ActiveX-ActiveX Library 2.File-New-Other,在New Items对话框中选择Delphi Projects-ActiveX-ActiveX Control,这里要封Delphi的TStringGrid

Delphi安装/卸载OCX控件的方法

delphi  安装卸载ocx 请参见 如下 http://blog.csdn.net/xt_chaoji/article/details/7027298 打开Delphi,关闭所有项目. 1.      安装OCX控件 点击菜单项:Component -> Import ActiveX Control… 进入如下界面: 然后点击按钮“Add..”,弹出如下界面选择Ocx文件:   注意:如果是DLL文件,则可能不会出现,需要将文件类型切换为所有. 选中目标文件后,该Ocx或者DLL对应的OCX

Delphi 编写ActiveX控件(OCX控件)的知识和样例(有详细步骤)

一.ActiveX应用情况简介: ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分.ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32位应用编程接口(Win32 API)和组件对象模型的一系列扩充和增强,目标是把计算机桌面环境与因特网环境集成起来,同时保护在Windows技术中现有的开发投资.微软的 ActiveX技术根本上就是修改过的OCX技术,使它能够跨越Internet,主要是使用WWW来传递控件.            A

网页里面调用OCX控件的一般方法

在HTML页面中使用ActiveX控件包含三个基本操作:将控件放入HTML中:将该控件下载给用户:在用户机器上安装该控件.如果只是针对IE用户,在HTML中插入ActiveX控件就比较简单:如果同时兼顾IE和Netscape用户,则要做更多工作.大家知道,HTML文件由文本和各种标志 (tags)组成,ActiveX 控件对于IE在HTML中的标志是<OBJECT>,该标记有几个重要的参数特性,它们是: 1.ID:为控件提供一个标识名称,为HTML代码提供一种访问该控件的方式. 就是说在网页内

win7 浏览器不能调用OCX控件 解决方案

1. 点击windows的“开始”菜单,选择“运行”; 2. 在输入框中输入“regsvr32 jscript.dll”(不包括双引号),点击确认; 3. 再次点击windows的“开始”菜单,选择“运行”; 4. 在输入框中输入“regsvr32 vbscript.dll”(不包括双引号),点击确认;二:如提示模块“vbscript.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005.请尝试在开始里面—>附件->右键点击一管理员身份运行

PHP调用OCX控件的具体方法

需要设置php.ini文件,找到这行com.allow_dcom=true,把com组件支持启用 使用PHP调用OCX控件,本不是个难题,但现实中采用flash回避的方法更通用.真正使用ocx的不多,而且资料也比较少,从网上看到了一个成功的例子: 其实调用 OCX或者什么什么的控件文件包含进来 include("D:\wwwroot\Authen\Authen.ocx"); 然后用COM函数调用它 其中参数是以 文件名.类名的形式调用的 这点由为重要 $word = new COM(&

在Web上调用Ocx控件

原文:http://blog.csdn.net/goodadult2012/article/details/6343369 在HTML页面中使用ActiveX控件包含三个基本操作:将控件放入HTML中:将该控件下载给用户:在用户机器上安装该控件.如果只是针对IE用户,在HTML中插入ActiveX控件就比较简单:如果同时兼顾IE和Netscape用户,则要做更多工作.大家知道,HTML文件由文本和各种标志 (tags)组成,ActiveX 控件对于IE在HTML中的标志是<OBJECT>,该标

在delphi中ocx控件的安装

第一步: 使用过Activex的人都知道,Activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的Activex控件注册,但如果你拿到的一个控件需要手动注册怎么办呢?如果修改注册表那就太麻烦了,在Windows的system文件夹下有一个regsvr32.exe的程序,它就是Windows自带的Activex注册和反注册工具.它的用法为: regsver32详解 regsvr32 [/s] [/n] [/i(:cmdline)] dllname 其中dllname为ac

如何在IE浏览器播放RTSP或RTMP流(RTSP/RTMP OCX控件)

好多开发者一直苦恼于如何在IE浏览器环境下,构建低延迟的RTSP或RTMP播放,对于RTSP流来说,好多公司通常的做法是把RTSP转RTMP,然后分发到RTMP服务器,然后服务器转http-flv出来,浏览器直接播放http-flv流,亦或通过flash控件直接播放RTMP流,还有就是,转hls流出来,缺点是hls流延迟更大. 以上方案未尝不可,如果对播放体验和延迟要求更高,最简单的做法是直接在IE浏览器下加载activex控件,扩展了ocx控件,用于IE浏览器下的低延迟RTMP或RTSP播放.