CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  网络通信/分布式开发

请教:如何ActiveX添加自定义事件?

楼主weyoung(有来有去)2006-03-09 01:53:05 在 Delphi / 网络通信/分布式开发 提问

当前在做的一个项目,实时监控的一个东东,要求在网页上将监控的数据实时展现给用户,考虑用ActiveX+HTML实现:  
      1.   服务器收到数据包,通过Socket将数据包发给ActiveX  
      2.   ActiveX收到数据包,触发自定义事件,将数据包发送给网页的JavaScript  
      3.   JavaScript更新页面上的内容  
   
  这个自定义事件在Delphi里如何实现?刚才上网查了一些资料,都没有详细说明这个步骤,还望各位DX指点一下。  
  目前我只知道:Type   Library   -->   New   Method,接下去的步骤就搞不懂了。  
   
  //以下这段是Socket客户端接收消息  
  procedure   TafxSck.OnSocketRead(var   message:   TMessage);  
  var  
        pHeadBuf,   pBodyBuf:   PChar;  
        iHeadLen,   iBodyLen:   Integer;  
        myPack:   PMyPack;  
        sMsg:   string;  
        iRet:   Integer;  
  begin  
        iHeadLen   :=   SizeOf(TMyPack);  
        case   WSAGETSELECTEVENT(message.lParam)   of  
              FD_READ:   //Socket有数据需要读取  
                    begin  
                          GetMem(pHeadBuf,   iHeadLen);  
                          iRet   :=   Recv(xl_socket,   pHeadBuf^,   iHeadLen,   0);   //读取包头  
                          if   iRet   =   SOCKET_ERROR   then  
                          begin  
                                systemLog('Read   Error!');  
                                Exit;  
                          end  
                          else  
                          begin  
                                myPack   :=   PMyPack(pHeadBuf);   //解析出包头  
                                iBodyLen   :=   myPack^.PackLen;   //得到包体的长度  
                                if   iBodyLen   >   0   then  
                                begin  
                                      //再读取包体  
                                      GetMem(pBodyBuf,   iBodyLen);  
                                      iRet   :=   Recv(xl_socket,   pBodyBuf^,   iBodyLen,   0);  
                                      if   iRet   =   SOCKET_ERROR   then  
                                      begin  
                                            systemLog('Read   Error!');  
                                            Exit;  
                                      end;  
                                      sMsg   :=   string(pBodyBuf);  
                                      FreeMem(pBodyBuf,   iBodyLen);  
                                      //*******到这里,我已经得到服务器传过来的数据包了,这里要如何触发自定义的事件???  
                                end;  
                          end;  
                    end;  
              FD_CLOSE:  
                    begin  
                          systemLog('Socket   Closed!');  
                    end;  
        end;  
  end;  
   
  问题点数:100、回复次数:9Top

1 楼weyoung(有来有去)回复于 2006-03-09 01:53:54 得分 0

请路过的DX指点一下。  
  MSN:   weyoung@163.net  
  QQ:   21998699  
  多谢!Top

2 楼weyoung(有来有去)回复于 2006-03-09 08:53:08 得分 0

顶一下Top

3 楼jilu_sun(Godfather)回复于 2006-03-09 10:07:07 得分 0

自定义的事件实现方法和普通的没有什么太大的区别  
  在对应的imp单元中声明的类中添加自己的方法定义  
  在implementation中添加具体实现代码  
  Top

4 楼weyoung(有来有去)回复于 2006-03-09 14:18:35 得分 0

楼上兄弟能说的明白一些吗?最好给点例子,哈哈Top

5 楼Dlwxn(Dlwxn)回复于 2006-03-09 16:05:11 得分 5

你需要的是一个ActiveX   Control控件,在新建一个ActiveX   Control控件   的时候,必须从TCustomControl类继承下来。  
   
  你可以先写一个从TCustomControl继承下来的组建,在这里面实现你需要的方法,然后安装到delphi的组建面板上,新建一个ActiveX   Control从这个类继承,保存这个程序,不需要修改,编译后就是你需要的ActiveX   ControlTop

6 楼weyoung(有来有去)回复于 2006-03-09 16:52:28 得分 0

多谢Dlwxn(Dlwxn)。不过我想要的不是这个。。。Top

7 楼weyoung(有来有去)回复于 2006-03-09 20:01:26 得分 0

顶Top

8 楼ljy(ljy)回复于 2006-03-11 13:59:59 得分 95

在你的Events接口中添加一个处理函数原型  
  然后在你需要的地方进行下面的调用,  
  if   FEvents   <>   nil   then   FEvents.OnRequest(Command,   Message);  
   
  不过我还没找到怎么在web   page里能调用这个事件。在其它平台中可以激发这个事件,据msdn上说,好像要实现一个什么东东的接口才行。Top

9 楼weyoung(有来有去)回复于 2006-03-13 10:41:39 得分 0

问题已经解决。多谢ljyTop

相关问题

  • 自定义事件中添加事件的操作
  • 如何向一个自定义的类里添加事件?
  • 怎么为hyperlink添加自定义事件啊?
  • 怎么为hyperlink添加自定义事件啊?
  • 给ActiveX控件添加自定义属性的问题!!
  • 自定义事件
  • 自定义事件
  • ActiveX控件自定义事件,传递参数问题
  • 急问题:关于给自定义的控件添加事件的问题!
  • 关于Word内添加自定义按钮的OnAction事件如何设定

关键词

  • activex
  • socket
  • ibodylen
  • 自定义
  • pbodybuf
  • iheadlen
  • pheadbuf
  • 数据包
  • 添加
  • 事件

得分解答快速导航

  • 帖主:weyoung
  • Dlwxn
  • ljy

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo