使用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开发工具delphiXE中开发ActiveForm的经历,与以前在delphi7中有明显的不同,希望大家能通过此文章得到启发共勉。
详细介绍了在delphi2010,delphi xe3中ActiveForm的创建及发布的方法
演示如何用delphi进行activeX form编程并进行数字签名
delphi开发的ActiveForm 可用在Web中,实例可用,并通过测试。
ActiveForm 示例,基于Delphi的源码,通过IE执行activeform。
内容索引:Delphi源码,界面编程,ActiveForm ActiveForm 示例,基于Delphi的源码,通过IE执行activeform。
第一部分 快速开发的基础 第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 ...
通过IE执行activeform
ToolBar工具栏控件的使用 动态建立主菜单选项 窗口界面的动态分隔条...ActiveForm数据浏览 建立数据查询WebServices服务器端 数据查询Web服务客户端开发 基于WAP的手机无线应用 建立基本Web数据库...
使用Delphi 开发ocx,使用函数和自定义事件的源码实例。希望对你有帮助。
Delphi是由Inprise公司推出的面向对象的可视化软件开发工具。Delphi 5是Delphi的最新版本。本书共分三部分、16章,主要介绍Delphi 5集成开发环境,对象Pascal语言、组件、通用编程技术、动态链接库、多线程、多媒体...
C++ Builder 6制作ActiveForm源码
第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 使用代码...
建立ActiveForm数据浏览 建立数据查询WebServices服务器端 数据查询Web服务客户端开发 基于WAP的手机无线应用 建立基本Web数据库服务器应用 建立类型库编辑DataSnap服务端 建立查询条件Web数据库服务器应用 建立基本...
ToolBar工具栏控件的使用动态建立主菜单选项窗口界面的动态分隔条动态...ActiveForm数据浏览建立数据查询WebServices服务器端数据查询Web服务客户端开发基于WAP的手机无线应用建立基本Web数据库服务器应用建立类型库...
建立ActiveForm数据浏览 建立数据查询WebServices服务器端 数据查询Web服务客户端开发 基于WAP的手机无线应用 建立基本Web数据库服务器应用 建立类型库编辑DataSnap服务端 建立查询条件Web数据库服务器...
本程序在开发完ActiveForm后,要使用“Project/WebDeploy” 菜单将其分发到Web服务器中,以便使客户端可以下载。 同时,还要通过“Project/Web Deploy Options”来 正确设置位置信息。 要在分布式应用系统中更新数据...
自己制作ActiveForm电子签名的演示文档,具体步骤察看压缩包的Word文档。 先要有工具包,包括以下几个软件: makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥 cert2spc.exe 将cer格式证书转换成...
本文实例讲述了YII2.0之Activeform表单组件用法。分享给大家供大家参考,具体如下: Activeform 文本框:textInput(); 密码框:passwordInput(); 单选框:radio(),radioList(); 复选框:checkbox(),checkboxList(); ...