现在我的控件要实现一个回调函数给由web做成的网页使用? 该如何写,参数应该是一个指针,可是ocx没有自定的参数类型,该使用什么呢? 跪求答案,本人对COM所知甚少。是用delphi开发

解决方案 »

  1.   

    其实就是事件。在接口Events组下加一个事件,定好参数,然后在适当的时音调用:
    if FEvents <> nil then FEvents.xxxx;
    就行了,至于js怎么绑定事件,自己查一下
      

  2.   

    1、在ActiveX控件的YouActiveXEents接口中定义一个事件。这个就是外部要调用的。
       在【View】->【Type Library】中创建。就在创建方法的下面就是一般名称为【xxxxxActvieXEvents】.例如我们这里定义如下事件:
      OnTest(aValue:string); //实际生成的代码应该是procedure OnTst(const aValue: WideString); dispid 209; 在_TLB单元里。
    2、在页面中JS如些调用:
      <script language="javascript" event="OnTest(aValue)" for="YouActiveXName">
                 alert(aValue); //接收控件中的事件消息,并显示传递 的值。
     </script>3、在ActiveX控件中触发这个事件,如下:
      //向Web页面事件发送消息
              if FEvents <> nil then
                FEvents.OnTest('成功了');  
      

  3.   

    非常感谢两位的回答,但是还有一个问题就是:如果我在delphi里面怎么去调用这个事件呢?没有响应啊
      

  4.   

    if FEvents <> nil then
      FEvents.OnTest('成功了'); 
    这个就是的ActiveX控件中触发这个事件职!在DELPHI里调用,如果不成功,很有可能是FEvents为空了。跟踪一下!
      

  5.   

    如果在DELPHI中调用还得改代码,这里只实现了Web的。
    DELPHI中的可以仿照ActiveX单元中的去写。它在里面也定义了下些事件。
      

  6.   

    procedure TWingSoftVideo.Initialize;
    begin
      inherited Initialize;
      OnActivate := ActivateEvent;
      OnClick := ClickEvent;
      OnCreate := CreateEvent;
      OnDblClick := DblClickEvent;
      OnDeactivate := DeactivateEvent;
      OnDestroy := DestroyEvent;
      OnKeyPress := KeyPressEvent;
      OnPaint := PaintEvent;
      OnTest := TestEvent;
    这里需要声明onTest原型事件,TestEvent的内容为
    procedure TWingSoftVideo.TestEvent(Sender: TObject; var Param1: Integer);
    begin
      if FEvents <> nil then FEvents.OnTest(Param1);
      Param1 := 1000;
    end;可是在声明OnTest := TestEvent;的时候,会提示OnTest未申明,而我按你的方法在_xxxxxActvieXEvents里面已经添加了OnTest事件TWingSoftVideoOnTest = procedure(ASender: TObject; var Param1: Integer) of object;
    ,那为什么还是会报OnTest没有申明啊,很困扰!
      

  7.   

    nm_wyh
     
    (冰河) 
    帮忙解决下啊,现在调用根本进不了ocx的事件里来啊
      

  8.   

    网页使用函数干什么?网页与客户端交互?delphi开发网络应用程序的方法有好几个,用那种?
      

  9.   

    如果将ocx嵌入到网页里是显示结果的,HTML文件只是一个载体,HTML文件并不是程序,不能调用函数,莫非是活动服务器程序?