日期:2014-05-16  浏览次数:20286 次

Delphi automation object 创建的ocx 如何开事件
我创建带窗体的ocx工程的时候是可以新建事件的 且FEvents这个变量也会有值,我用js去回调也能成功,但是现在我新建不带窗体的工程,编译出来的是dll工程,我也勾上了那个支持事件的选项,但是现在?FEvents这个变量nil,且EventSinkChanged这个方法也没执行,谁有js调用Delphi写的ocx组件的demo啊 能实现js能调用ocx的方法,且能回调事件,不要带窗体的哦

------解决方案--------------------
我也遇到过,但是重新建立一个OCX控件,把原来的代码在复制一遍试试。

还有好像是在JS里真正的监控了这个方法,FEvents中才不为空。否则也是空!

我有一次写一个无窗体的OCX控件,也是自己做了一个方法。但是就是不执行,但是最后发现JS监控事件的时候写错了。你可以检查一下,OCX创建以及JS监控事件的代码。看看有没有什么问题。

确实很奇怪,但是跟有窗口和无窗口好像也没什么关第。我在网上也找了很久,也没找到什么原因。后来自己重新创建才搞定!
------解决方案--------------------
我是这样做的,
1、首先在OCX控件的事件接口中建立了一个回调函数,OnTest(aValue:Integer);
2、在WEB页面中加载ocx控件:
<object classid="clsid:E9D9B85E-D066-40DC-8191-DD75778356C1" id="FPInfo" width="0"
height="0">
</object>
3、监控回调函数
<script language="javascript" event="OnTest(aValue)" for="FPInfo">
alert(aValue);
</script>

我是这样做的,没有什么问题啊,注意for="FPInfo"中的FPInfo是ocx控件的在页面中的ID!
------解决方案--------------------
每天回帖即可获得10分可用分!
------解决方案--------------------
function IncomeTalkEventHandler()
{

}
IncomeTalkEventHandler.prototype.OnIncomeTalkEvent =
function (ANumber)
{
alert("测试成功,点击事件");
t3.value=ANumber; 


这几个是干什么的?和上面的JS可能是冲突的吧!
------解决方案--------------------
我没有这样用过。楼主说的方法是可行的。
DLL肯定是可以跨语言的。