一、使用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控件属性、方法及事件的使用示例。

 

posted on 2015-02-10 17:16  -人生如歌-  阅读(1103)  评论(0编辑  收藏  举报