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控件,所以选择ActiveX Control,其它按对话框来设置即可。

  •   为OCX新增属性、方法

  View-Type Library弹出一个扩展名为ridl的窗体

这里定义了一个Cells属性及MethodTest方法。为什么有两个Cells?那是因为一个读,一个写,可以通过右侧的Attributes页中的Invoke kind属性看出。还有一个属性Type是该属性类型。还可以通过Parameters页设置参数,设置完成后如下图:

Get参数:

Put参数:

MethodTest参数:

然后按ridl窗体上的刷新按钮,即可生成方法体:

二、JS调用

  代码:

<HTML>
<HEAD>
<TITLE>MyActiveX - Methods, Properties, and Events</TITLE>
<SCRIPT LANGUAGE="JavaScript">

function PropertyTest()
{
MyActiveX1.Cells(2,2) = StringInput.value
}

function JSMethodTest()
{
alert(MyActiveX1.MethodTest())
}
</SCRIPT>

<!-- 捕捉OCX控件的双击事件 -->
<SCRIPT type="text/javascript" FOR="MyActiveX1" EVENT="OnDblClick" >
<!-- insert script commands -->
alert("事件已捕捉!");
</SCRIPT>

</HEAD>
<BODY>
<center>
MyActiveX - Methods, Properties, and Events Example
<p></p>
<OBJECT ID="MyActiveX1" WIDTH=500 HEIGHT=200
CLASSID="CLSID:E61826B4-18B3-4E6D-AED6-78361961D29C">
</OBJECT>
<p></p>
Input Parameter: <INPUT TYPE ="text" NAME="StringInput" VALUE="">
<INPUT TYPE="button" NAME="Submit1" 
VALUE="Properties" ONCLICK="PropertyTest()">
<p></p>
<INPUT TYPE="button" NAME="Submit2" 
VALUE="Methods" ONCLICK="JSMethodTest()">

</center>
</BODY>
</HTML>

效果图:

至此已经完成OCX控件属性、方法及事件的使用示例。

时间: 2024-10-08 20:36:45

JS调用Delphi编写的OCX控件的相关文章

javascript 调用delphi封装的OCX控件&#183;

1.delphi 7 新建一个工程选择如下类型 2.设置OCX名称 3.增加函数"view"->"Type Library" 4.设置函数名称 5.设置函数返回值与入参(注意 返回参数不要使用 * 因为地址传递无法跟浏览器交互 我是这么理解的,亲测也确实没调用成功) 入参为 in 出差 是out 跟retval 6.点下上面两个小箭头的刷新按钮,就在Impl文件生成了代码,然后填充你的代码就可以了 7.编译与注册DLL regsvr32 E:OCXDelphi

JS调用Android、Ios原生控件

在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时,提高代码质量,实现两者在网页端代码的统一. 首先我们先看一下Ios调用JS的方法实现: //无参调用 function SwiftCallJs1(){} //有参调用 function SwiftCallJs2(name, message){} 紧接着我们看一下Android调用JS的方法实现: /

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

Phonegap 之 iOS银联在线支付(js调用ios端银联支付控件)

Phonegap项目,做支付的时候,当把网站打包到ios或android端成app后,在app上通过wap调用银联在线存在一个问题: 就是当从银联支付成功后,再从服务器返回到app客户端就很难实现. wap银联支付流程是这样:客户端---> 服务器(构建支付请求)--> 银联支付 ---> 返回到服务端(处理支付结果).所以对于手机网站银联支付没有问题,但是对于ios端app和android端app, 再通过wap支付,发现支付成功后,很难在回到app客户端了. 所以这里就必须借助Pho

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

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

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