自己写的ActiveX控件,仅在IE中无法触发自定义事件,求助!

yuanreid 2004-07-08 02:32:50
用BCB6.0写了个ActiveX控件(通过VCL控件转),ActiveX控件在BCB的From中测试全部通过,但是在IE中除了TNotify声明的事件外都无法激活。利用调试日志,发现实际上VCL中的事件点燃函数已经运行,而且函数指针不为空。但是IE中的javascript事件代码无响应!
在网上搜索此类问题,确实也有其他人问,但没有找到答案。

各位高手是否遇到过?


VCL控件的代码如下:
事件声明:
typedef void __fastcall (__closure *TOnIEReceiveData)(System::TObject* Sender, WideString Data);

TOnIEReceiveData FOnReceiveData;

__property TOnIEReceiveData OnReceiveData = { read = FOnReceiveData, write = FOnReceiveData};

事件点燃函数:
void __fastcall THollyCommunicateClient::DoOnReceiveData(IECommMessage Message)
{
CHECKPOINT;//调试日志
if(FOnReceiveData)
{
FOnReceiveData(this, WideString(Message.Body));
WriteLine("[检查点]\t[IE Comm]\t[检查点]\t Invoke FOnReceiveData()");//调试日志,这句日志被激活了
}
else
WriteLine("[检查点]\t[IE Comm]\t[检查点]\t FOnReceiveData函数指针为空");;//调试日志
...全文
234 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2004-07-12
  • 打赏
  • 举报
回复
IE内置的脚本引擎Jscript和VBScript仅支持变体类型,其它数据类型,包括字符串都不被支持。更改你的事件参数类型看看。
yuanreid 2004-07-12
  • 打赏
  • 举报
回复
up
yuanreid 2004-07-11
  • 打赏
  • 举报
回复
up
yuanreid 2004-07-10
  • 打赏
  • 举报
回复
up
robbyzi 2004-07-10
  • 打赏
  • 举报
回复
关于VCL中的事件点燃函数,
没接触过。

关注。。
yuanreid 2004-07-09
  • 打赏
  • 举报
回复
大家一定要帮忙啊
yuanreid 2004-07-08
  • 打赏
  • 举报
回复
大家一定要帮忙啊
yuanreid 2004-07-08
  • 打赏
  • 举报
回复
matq2008(叶子.net) ,你好:
我的邮箱:delphi@yuan.com.cn

我有点燃事件啊!DoOnReceiveData()就是,它里面已经触发了事件指针。
还是,你的意思要针对OCX控件做二次点燃?为什么呢?

叶子哟 2004-07-08
  • 打赏
  • 举报
回复
需手工写点火代码,以事件GetMessage为例
void __fastcall TseatImpl::OnGetMessageEvent(TObject *Sender)
{
Fire_OnGetMessage();
};

在需要触发事件时调用就行了
OnGetMessage(this);

叶子哟 2004-07-08
  • 打赏
  • 举报
回复
留下email,俺给你发

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧