使用Delphi具体做一个ActiveX控件:
Delphi为ActiveX控件的开发提供了两个向导:
1) ActiveX控件向导可以让你把一个VCL构件包装成为一个ActiveX控件。下面将会使用到这个向导。
2) ActiveForm向导则可以把几个VCL构件包装成为一个ActiveX控件或者开发一个完整的ActiveX应用。
在Delphi当中把TServerSocket 包装成一个ActiveX控件的过程如下:
首先,要启动ActiveX控件向导,选择File菜单里的New命令,在弹出的对话框里选择ActiveX页签,然后双击ActiveX Control图标即可。向导中的第一个域要求选择一个要进行包装的VCL构件,点击选择TServerSocket 。其他几个域取缺省值即可,如果需要包含版本信息等其他信息,也可以选上。点击OK按钮,向导将生成一个Delphi的ActiveX控件开发项目ServerSocketControl1,包括以下几个的文件:
1. 一个ActiveX项目文件,包含了启动、初始化一个ActiveX控件所需要的代码。通常是不需要修改这个文件的。
2. 一个类型库文件(TLB扩展名),定义和实现了ActiveX控件向外所提供的接口、属性、方法和事件。Delphi专门为这个文件提供了一个Pascal版本的文件,而且自动维护这两个文件的一致性。
3. 一个ActiveX实现的文件,使用了Delphi ActiveX框架(DAX)定义和实现了这个ActiveX控件,具体实现类型库里定义的接口。这个文件是我们经常需要修改的。DAX是Delphi对ActiveX控件的COM规约的实现方式。
4. 如果选择了包括一个“关于”对话框的话,还有一个对应的对话框实现文件。
Delphi的ActiveX控件向导根据所包装的VCL构件的属性、方法和事件生成了ActiveX控件相应的属性、方法和事件。但是它没有把VCL构件使用非OLE类型(如集合、数组等)的属性、方法和事件转换过去。你可手工添加一些属性、方法和事件!
还可以往ActiveX控件加入新的方法、事件,加入的方法与加入属性类似。而且加入以后,Delphi也会自动往相应的文件中加入对应方法和事件的声明和实现,具体的实现体还得自己编写,这里不再多说。做好了前面这些工作以后,选择Project菜单的Build ServerSocketControl1命令即可生成我们所需要的ActiveX控件。在项目的目录下,我们可以找到ServerSocketControl1.ocx这个文件,这个就是我们的ActiveX控件啦!把它拷贝到Windows 9x的System目录或者Windows NT/2000的System32目录里面,然后使用命令regsvr32 ServerSocketControl1.ocx在系统中注册这个ServerSocketControl1控件,就可以在VB编程中使用了。

解决方案 »

  1.   

    to yousoft(悠游在线)你发帖说道  :
    首先,要启动ActiveX控件向导,选择File菜单里的New命令,在弹出的对话框里选择ActiveX页签,然后双击ActiveX Control图标即可。向导中的第一个域要求选择一个要进行包装的VCL构件,点击选择TServerSocket 。我是想选择TServerSocket,可是没有呀??? 请再指点一下...谢谢
      

  2.   

    当然没有了。Delphi的向导要求从TWinControl下继承的控件才能成为ActiveX控件。
    TServerSocket是不可视控件,是否你自己写个包装程序,包装一下TServerSocket。
      

  3.   

    做个 COM 吧.封装ServerSocket不一定非要以OCX形式出现
      

  4.   

    to chechy :能否将实现的方法详细的说明一下 ;)to spar8086: COM?我连ACTIVE都做不出来,您想我会做COM吗? ;)
      

  5.   

    实际上作COM也好,作Activex也好,无非就是包装一下TServerSocket。
    就是在你的Interface上,加一些属性和方法,这些属性和方法和ServerSocket的一样。实际上调用这些方法时,你要完成的就是调用ServerSocket的属性和方法。
    我说的你明白不?
      

  6.   

    to chechy :  多谢指教.  我初学Delphi,是不是能给点例子....参考一下吗?