`

Delphi开发ActiveForm,FEvents=nil的解决

 
阅读更多

使用Delphi开发一个ActiveForm,其他功能都没问题,但自定义事件不执行,单步跟踪发现EventSinkChanged事件未执行,所以FEvents=nil。以为是创建工程哪个选项选错了,重建了好几次工程,问题依旧。在网上看到有人给出解决办法,试了一下,果然好了。问题在于JS中绑定ActiveForm事件的方式上。

我原来是这样绑定事件的:

 

<OBJECT id="testid"  
  classid="clsid:62949CA7-D723-4D98-AD9A-0DFEBCE5C14F"  
  codebase="ActiveFormProj1.ocx#version=1,0,0,0"  
  width="350" height="250" align="center" hspace="0" vspace="0"
>  
</OBJECT>  
<script type="text/javascript">
  document.getElementById("testid").attachEvent("OnClick", function(){  alert("OnMyEvent fired!"); });
</script>

 这样绑定事件,在ActiveForm中不会触发EventSinkChanged事件,所以FEvents=nil,导致自定义事件不会正确触发。改成下面这样就可以了:

<OBJECT id="testid"  
  classid="clsid:62949CA7-D723-4D98-AD9A-0DFEBCE5C14F"  
  codebase="ActiveFormProj1.ocx#version=1,0,0,0"  
  width="350" height="250" align="center" hspace="0" vspace="0"
>  
</OBJECT>  
<script type="text/javascript" event="OnMyEvent" for="testid">  
  alert("OnMyEvent fired!");  
</script>

 再试了一下,这样绑定也可以:

function onEventHandler(arg1, arg2){
    // do something
}

window.onload = function(){
    var yourActiveXObject = document.getElementById('YourObjectTagID');
    if(typeof(yourActiveXObject) === 'undefined' || yourActiveXObject === null){
        alert('Unable to load ActiveX');
        return;
    }

    // attach events
    var status = yourActiveXObject.attachEvent('EventName', onEventHandler);
}

 

 

参考资料:

http://stackoverflow.com/questions/150814/how-to-handle-an-activex-event-in-javascript

 

分享到:
评论

相关推荐

    用delphi开发的聊天软件,基于Web并结合了网页中嵌入ActiveX技术,就是Delphi的ActiveForm

    用delphi开发的聊天软件,基于Web并结合了网页中嵌入ActiveX技术,就是Delphi的ActiveForm

    使用delphi XE创建ActiveForm成功经历

    本文描述了最新的delphi开发工具delphiXE中开发ActiveForm的经历,与以前在delphi7中有明显的不同,希望大家能通过此文章得到启发共勉。

    delphi2010和delphi xe中创建和发布ActiveForm的方法

    详细介绍了在delphi2010,delphi xe3中ActiveForm的创建及发布的方法

    delphi进行ActiveForm编程演示程序

    演示如何用delphi进行activeX form编程并进行数字签名

    Delphi ActiveForm实例

    delphi开发的ActiveForm 可用在Web中,实例可用,并通过测试。

    ActiveForm 示例,Delphi 开发的源代码.rar

    ActiveForm 示例,基于Delphi的源码,通过IE执行activeform。

    ActiveForm 示例,基于Delphi的

    内容索引:Delphi源码,界面编程,ActiveForm ActiveForm 示例,基于Delphi的源码,通过IE执行activeform。

    Delphi5开发人员指南

    第一部分 快速开发的基础 第1章 Delphi 5下的Windows编程 1 1.1 Delphi产品家族 1 1.2 Delphi是什么 3 1.2.1 可视化开发环境 3 1.2.2 编译器的速度和已编译代码的效 率 4 1.2.3 编程语言的功能及其复杂性 4 1.2.4 ...

    简单的activeform例子

    通过IE执行activeform

    Delphi7 编程 100 实例

    ToolBar工具栏控件的使用 动态建立主菜单选项 窗口界面的动态分隔条...ActiveForm数据浏览 建立数据查询WebServices服务器端 数据查询Web服务客户端开发 基于WAP的手机无线应用 建立基本Web数据库...

    Delphi Active Form 函数使用和自定义事件

    使用Delphi 开发ocx,使用函数和自定义事件的源码实例。希望对你有帮助。

    DELPHI 5编程实例与技巧

    Delphi是由Inprise公司推出的面向对象的可视化软件开发工具。Delphi 5是Delphi的最新版本。本书共分三部分、16章,主要介绍Delphi 5集成开发环境,对象Pascal语言、组件、通用编程技术、动态链接库、多线程、多媒体...

    C++ Builder 6制作ActiveForm源码

    C++ Builder 6制作ActiveForm源码

    Delphi 5编程实例与技巧

    第1章 Delphi集成开发环境 1 1.1 集成开发环境简介 1 1.2 集成调试器 5 1.3 开发环境的优化 6 1.3.1 自定义工具栏 6 1.3.2 编程环境设置 7 1.3.3 编辑环境设置 8 1.3.4 工程设置 8 1.4 方法与技巧 9 1.4.1 使用代码...

    Delphi编程100例

    建立ActiveForm数据浏览 建立数据查询WebServices服务器端 数据查询Web服务客户端开发 基于WAP的手机无线应用 建立基本Web数据库服务器应用 建立类型库编辑DataSnap服务端 建立查询条件Web数据库服务器应用 建立基本...

    《Delphi7编程100例》代码

    ToolBar工具栏控件的使用动态建立主菜单选项窗口界面的动态分隔条动态...ActiveForm数据浏览建立数据查询WebServices服务器端数据查询Web服务客户端开发基于WAP的手机无线应用建立基本Web数据库服务器应用建立类型库...

    Delphi7编程100例

    建立ActiveForm数据浏览 建立数据查询WebServices服务器端 数据查询Web服务客户端开发 基于WAP的手机无线应用 建立基本Web数据库服务器应用 建立类型库编辑DataSnap服务端 建立查询条件Web数据库服务器...

    更新多层应用程序数据.rar_delphi web_web服务器_分布式

    本程序在开发完ActiveForm后,要使用“Project/WebDeploy” 菜单将其分发到Web服务器中,以便使客户端可以下载。 同时,还要通过“Project/Web Deploy Options”来 正确设置位置信息。 要在分布式应用系统中更新数据...

    ActiveForm电子签名示例

    自己制作ActiveForm电子签名的演示文档,具体步骤察看压缩包的Word文档。 先要有工具包,包括以下几个软件: makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥 cert2spc.exe 将cer格式证书转换成...

    YII2.0之Activeform表单组件用法实例

    本文实例讲述了YII2.0之Activeform表单组件用法。分享给大家供大家参考,具体如下: Activeform 文本框:textInput(); 密码框:passwordInput(); 单选框:radio(),radioList(); 复选框:checkbox(),checkboxList(); ...

Global site tag (gtag.js) - Google Analytics