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

  • 相关阅读:
    洛谷P2577 午餐【贪心】【线性dp】
    洛谷P1169 棋盘制作【悬线法】【区间dp】
    洛谷1546 最短网络Agri-Net【最小生成树】【prim】
    洛谷P1144 最短路计数【堆优化dijkstra】
    洛谷P1339 热浪【最短路】
    洛谷P1273 有线电视网【树形dp】
    洛谷P2279 消防局的设立【树形dp】
    洛谷P1220 关路灯【区间dp】
    洛谷P1341 无序字母对【欧拉路】【dfs】
    洛谷P1330 封锁阳光大学【dfs】
  • 原文地址:https://www.cnblogs.com/tc310/p/4783036.html
Copyright © 2020-2023  润新知