请问,如何把自己编的控件(delphi)转换成activeX控件?急,请各位帮帮忙! ( 积分: 20 )

  • 主题发起人 主题发起人 futter
  • 开始时间 开始时间
F

futter

Unregistered / Unconfirmed
GUEST, unregistred user!
我手上有一个别人编的第三方控件,因为觉得很好,想把他转换成active控件,请各位帮帮忙,我delphi用的日子不多,麻烦会的大哥说的详细一点!!
 
我手上有一个别人编的第三方控件,因为觉得很好,想把他转换成active控件,请各位帮帮忙,我delphi用的日子不多,麻烦会的大哥说的详细一点!!
 
1.安装第三方控件
2.New一个ActiveX Control
3.在向导对话框的祖先类里找到这个控件
4.单击生成
5.一切OK

PS:不是所有的VCL都可以转化为ActiveX控件
 
wjiachun老兄:
此方法早就试过了,不行,向导对话框的祖先类里根本就没有这个控件,你知道是什么原因么?
 
D5开发人员指南 第25章

在ActiveX控件向导的下拉列表框中有VCL控件的列表,但并不是所有的VCL控件都在这个清单中,被列出来的VCL控件要满足下面三个准则:
•VCL控件必须在当前安装的设计包中(它必须在组件面板中)。
•VCL控件必须是TWinControl的派生类,当前非窗口控件不能转换为ActiveX控件。
•VCL控件必须是还没有被RegisterNonActiveX()过程列出来的,RegisterNonActiveX()过程在Delphi的在线帮助中介绍。
许多标准的VCL控件无法转换为ActiveX控件,是因为其中有些转换成ActiveX控件没有意义,或者是因为转换需要大量的工作,超出了向导能提供的功能。TDBGrid控件是一个很好的VCL控件,但转换成ActiveX控件没有意义,因为它需要另一个类TDataSource作为它的属性,而这用ActiveX是没法提供的。TTreeView在转换成ActiveX控件时需要大量的工作,因为在TTreeView中的节点在ActiveX中很难表示。
 
这个控件是一个msnmessenger控件,在做这个控件时,他还用到了wsocket,我用delphi的日子不多,还没有自己做过控件,你能解释一下,一般什么样的空件是TWinControl的派生类么?
 
查Tmsnmessenger类的父类的父类的……就知道它是不是TWinControl的派生类了
 
TMSNMessenger = class(TComponent)而TComponent:class(TPersistent),也就是说 TMSNMessenger是TPersistent派生的?
 
TMSNMessenger直接从TComponent派生,显然不是从TWinControl类派生的,那么不能直接用向导,你可以试试使用delphi activex(DAX)框架来手工编写,不过我没有做过,你可以参考一下DAX的资料。
 
接受答案了.
 
后退
顶部