JS调用Delphi编写的OCX控件

摘要:
为什么有两个细胞?这是因为在右侧的Attributes页面上的Invokebind属性中可以看到一次读取和一次写入。另一个属性类型是属性类型。您也可以通过parameters页面设置参数,如下图所示:Get Parameter:Put Parameter:MethodTest Parameter:然后按ridl表单上的Refresh按钮生成方法体:II。JS调用代码:MyActiveX方法、属性和事件 functionPropertyTest(){MyActiveX1.Cells(2,2)=StringInput.value}functionJSMethodTest(){alert}MyActiveX方法、属性和事件示例 输入参数:Submit2“VALUE=”方法“ONCLICK=”JSMethodTest()“> 渲染:到目前为止,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 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控件属性、方法及事件的使用示例。

免责声明:文章转载自《JS调用Delphi编写的OCX控件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ghost教程 图文教程Web的几种上传方式总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

nodejs 和 js

JavaScript组成:ECMAScript(定义这门语言的基础,比如语法、数据类型、结构以及一些内置对象等)、DOM(基于ECMASCRIPT,扩展出来的用于操作页面元素的方法)、BOM(基于ECMASCRIPT,扩展出来的用于操作浏览器的一些方法)。 NodeJS是以ECMASCRIPT为基础,然后在这个基础上扩展出来的一些操作其他东西(即操作非浏览...

我们是如何做好前端工程化和静态资源管理

随着互联网的发展,我们的业务也日益变得更加复杂且多样化起来,前端工程师也不再只是做简单的页面开发这么简单,我们需要面对的十分复杂的系统性问题,例如,业务愈来愈复杂,我们要如何清晰地梳理;团队人员愈来愈多,我们要如何更好地进行团队协作;功能愈来愈多,我们要如何保证页面的性能不至于下降,等等。所有的这些都可以归结为如何提升开发体验和性能问题。 提升开发体验...

Delphi Application.MessageBox详解

引数:1. Text:要显示的讯息2. Caption:讯息视窗的标题列文字3. Flags:讯息旗标3.1. 可指定讯息视窗上的图示3.2. 可指定讯息视窗出现的按钮3.3. 可指定预设Focus在哪一个按钮3.4. 可指定是否 Modal3.5. 其他引数说明:Text、Caption 引数为 PCahr 型态,字串型态的变数可用 PChar()转换,...

My97DatePicker控件调用

引用My97DatePicker,在要使用的jsp页面中引入js,如下 <script type="text/javascript" src="<%=request.getContextPath() %>/dd/js/My97DatePicker/WdatePicker.js"></script> 调用My97DateP...

JS jQuery查看系统中安装的字体

1.下载插件:FontDetect插件 地址:http://www.lalit.org/lab/javascript-css-font-detect/ 或者复制以下代码到fontdetect.js: var Detector = function() {// a font will be compared against all the three def...

delphi 数据库技术沉浮录--谨献给成为历史的BDE

        2014年9月,delphi xe7 出来了,这次在数据库技术方面,彻底抛掉了从1995 年delphi 1.0 就自带的BDE(Borland Database Engine)数据库访问技术。从而宣告了这个持续 了20余年的delphi 访问数据库技术进入历史。   纵观delphi 数据库技术的20年发展史,其实也是delphi 的发展...