请问如何在Activex中增加在网页中可以调用的事件,我可以调用Activex自动生成的AboutBox,但是我不知如何增加自己的事件(100分)

  • 主题发起人 主题发起人 jdx
  • 开始时间 开始时间
J

jdx

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何在Activex中增加在网页中可以调用的事件,我可以调用Activex自动生成的AboutBox,但是我不知如何增加自己的事件,请给出详细的步骤,下面是pihome的方法但是我没有试通,请pihome指条路,非常感谢!

****************************************************************************
在类型库中添加(打开*.TLB文件),如果你是指要在HTML中响应你的事件,这样操作(以下是Copy的一段,来源未知):

打开Type Library在IActiveFormX中New一个方法,Delphi会自动完成它的声明工作,
你只要完成其中的实现就可以了。如:增加一个SaveFile方法,Delphi自动完成
procedure TActiveFormX.SaveFile;
begin
//你自己在这里完成需要的功能
end;
在网页上调用就可以直接 objID.SaveFile();就可以直接调用方法了

如果需要从ActiveObje通知网页返回参数的话,可以使用Event
在IActiveFormXEvents中加入一个方法OnSaveFile(name : widestring);
在代码中需要产生这个事件的情况就可以
procedure TActiveFormX.SaveFile;
begin
//你自己在这里完成需要的功能
if FEvents <&gt
Nil then
FEvents.OnSaveFile('文件名称');//这样网页就能得到'文件名称'的值了
end;

网页中只要
<SCRIPT LANGUAGE=javascript FOR=objID EVENT=OnSaveFile>
<!--
alert(arguments[0]);//这样表示取得第一个参数的值
//-->
</SCRIPT>

这样就可以完成从网页调用ActiveX的方法,和ActiveX返回参数给网页的方法

****************************************************************************
 
在网页中调用ActiveX方法:
Type Library中增加一个方法SaveFile(),
创建<OBJECT id=objID
......
</OBJECT>
<script language=javascript>
objID.SaveFile();
</script>

 
to wanglifu 感谢你的回复,我现在想知道的是如何在Type Library中增加一个方法SaveFile(),增加后如何找到该方法并在其中添加代码
 
View -> Type Library
在左边相应的接口 New -> Method
在右边给新增加的方法指定参数之类的
完了以后点'Type Library'工具条的'Refresh Implementation',这时候Delphi就会刷新实现的代码,增加你的新方法。
 
to libin06
只是在_TLB.pas文件中增加了,但是我如何实现他呢,如何在AF文件中编写呢,实现后外部可以调用吗?等我解决后再送100分
 
刷新的时候在TLB.pas里增加了(这个不用改),同时在Impl1.pas文件里也增加了,这个应该没问题,外部调用没问题,比如我增加了一个方法 haha,在html文件里加:
<OBJECT
classid="clsid:xxxxxxx"
codebase="http://yyyyyyy"
width=100
height=100
align=center
hspace=0
vspace=0
id=hhid
>
</OBJECT>
<h2 onclick=hhid.haha()>hh</h2>
点网页里的'hh'就行了
 
to libin06 非常感谢,我不明白为什么只有在IAF中增加方法才可以,在其他中(IActiveFormX)都不行?
 
后退
顶部