请问:如何新建一个ActiveX控件,最好有明确步骤(搜索到的帖子的回答都不完善) 1.当然可以的.比如VB调用.2.你创建的严格说是一般COM,不是ActiveX控件.ActiveX可以看作是一种特殊的COM,在创建时选择创建ActiveX.3.你编出的COM组件,提供给别人用只需要给出DLL或OCX就行了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦..刚才没有仔细看.你那样声明原型的方法在VC,BCB里面能这样用,VB就不是这样用.VB一般通过IDispatch方式调用. to halfdream(哈欠)(50): 谢谢。 1 …… 2 您说的创建ActiveX,具体是选择哪一项呢?是ActiveX Control吗?可是选择这一项后,delphi给出的vcl class name一项选择什么呢?供选择的都是诸如TListBox、TMemo之类的,这样创建出来的ActiveX代表了什么意义呢? 3 我的xxx.dll对应的源文件里uses了xxx_Lib,如果只提供xxx.dll,而不包含xxx_Lib,会不会出错呢? 请教…… vcl class name,这个只是delphi给你的方便,你的activex控件可以从原来的vcl基础上继承过来,然后自己再修改!没有哪个xxx文件,使用应该也没错!我在做com时,就是这样! to missile(50): 那么就是说,要创建一个标准的ActiveX,步骤如下: 1 New ActiveX Control 2 随便选择一个vcl class,其余选项酌情 3 删除所有无用的代码 4 填写自己想要实现的代码 5 注册 我的问题: 1 删除无用代码的标准是什么 2 uses了xxx_tlb.pas,发布时却可以不带上它,确保无错?(这个家伙罗里罗嗦、唧唧歪歪,真是讨厌 :)) 用ActiveX Control很方便阿,delphi给你自动生成另外我觉得完全可以在vcl的基础上建立一vcl控件然后RegisterCommponents上在转化为Activex控件,不过好像只能从TWinControl继承来的才能转换吧我没做过,只是一点想法 to xzgyb(老达摩): 那么对已完成的组件,怎么转化为ActiveX组件呢? 另外,我将我的目的补充说明一下: 生成一个标准的ActiveX,它提供两个方法调用A、B。它可以被其他设计者通过Import ActiveX Control导入,然后设计者就可以在控件面板上直接拖放使用了。 RegisterComponents上去的组件,当建ActiveX Control时在Vcl Class Name会列出来不过需要从TWinControl继承 to xzgyb(老达摩): 我的组件是从TComponent继承的,不是TWinControl :( 那么这一类的组件怎么转化为ActiveX组件呢? 跑题了! 请指点建ActiveX的标准方法,请建过的朋友指点我们。 抱歉,偶也不懂,但是作为ActiveX控件为什么不从TWinControl继承呢另外你的ActiveX控件只是导出些函数,没有可似化的信息,何不直接建一COM对象。只好帮你UP了 继承自TWinControl的话有一大堆用不上的东西,删了又怕出错,所以……我前面建的正是com对象,只不过不好用 推………… 普通的COM对象不好用的话建个Automation Object也行吧,支持dispinterface象VB也可调用,vb如何调用不太清楚我晚上看看书在说 按你的情况,也可以创建Automation object, 因为它提供了IDispatch 接口,使用也是很方便的。可以不引入类型库,直接用CreateObject等方式调用。在DELPHI,VB,PB....等工具中,居然这个函数使用极为相似,帮助中都有。 好的,我试试。 Com调用比较麻烦,还要在调用的地方写上接口声明,所以才想要建一个类似发布的ActiveX。 请您继续关注,谢谢。 怎么样了,taberAutomation Object建的如何啦 我在ActiveX Library里建了一个Automation Object,也可以达到目的,与Com的用法差不多,同样要在调用程序里写接口声明及GUID,也不理想,不过我手头没有相关资料,不知道有没有更简便的方法。另外,怎么从Com里返回一个文件类型啊,delphi不认,苦恼…… 帮我 补充: 我想返回任意文件类型(File),delphi不认。 1.看来你真不会查帮助。下面这贴自于DELPHI帮助的。------------------------------------------var MSWord: Variant;begin ... MSWord := CreateOleObject('Word.Basic'); MSWord.XXXX(XXX,XXX); //为了你清楚,补充上这句 MSWord := Unassigned; ...end;-------------------------------------------这是调用自动化对象的一般方法。另外,也可以用CreateComObject-----------------------------------------var obj: Variant;begin ... obj := CreateComObject( /* 参数为GUID */); obj.XXXX(XXX,XXX); //要这样用,它必须是自动化对象.事实是调用IDispatch接口 obj := Unassigned; ...end;-------------------------------------------当然,你那样用接口声明的方法也是比较常用的,只是它用起来麻烦一点,但相对效率较高。2.参数返回文件类型?实在不明白你的意思。如果是传文件句柄,,,在很多情况下都是禁止的。 COM调用中,参数种类就那么有限几种,如果要传特定格式的数据,得进行一定转换。 非常感谢 1 我现在把调用方法改过来了,简便了一些。 2 我想在Com里定义一个方法,它的返回值为文件,也就是file类型的,但delphi不允许,我现在是用variant代替的,有什么好办法吗? 请大家指点,欢迎讨论。 向各位DELPHI高手请教,delphi源码怎样调试编译看效果? 怎么在一个程序中显示两个(鼠标)光标 公司招聘以下人员(两名) 怎么获得jpg图片的分辨率? IndyTCPServer问题 五百万你会出卖自己吗? 学DELPHI的数据库开发.要很精通Object Pascal吗? 这个问题有点怪 在Delhi中怎样定义"位"的数据类型呢?(无内容)_ 我子窗体不显示,这是怎么一回事? 发现Delphi封装性的一个问题,在同一个Unit中,无封装可言!!!!!!!!!!!!!!!!! 临时数据存储的问题
你那样声明原型的方法在VC,BCB里面能这样用,VB就不是这样用.VB一般通过IDispatch方式调用.
谢谢。
1 ……
2 您说的创建ActiveX,具体是选择哪一项呢?是ActiveX Control吗?可是选择这一项后,delphi给出的vcl class name一项选择什么呢?供选择的都是诸如TListBox、TMemo之类的,这样创建出来的ActiveX代表了什么意义呢?
3 我的xxx.dll对应的源文件里uses了xxx_Lib,如果只提供xxx.dll,而不包含xxx_Lib,会不会出错呢?
请教……
没有哪个xxx文件,使用应该也没错!
我在做com时,就是这样!
那么就是说,要创建一个标准的ActiveX,步骤如下:
1 New ActiveX Control
2 随便选择一个vcl class,其余选项酌情
3 删除所有无用的代码
4 填写自己想要实现的代码
5 注册
我的问题:
1 删除无用代码的标准是什么
2 uses了xxx_tlb.pas,发布时却可以不带上它,确保无错?(这个家伙罗里罗嗦、唧唧歪歪,真是讨厌 :))
另外我觉得完全可以在vcl的基础上建立一vcl控件
然后RegisterCommponents上
在转化为Activex控件,不过好像只能从TWinControl继承来的才能转换吧
我没做过,只是一点想法
那么对已完成的组件,怎么转化为ActiveX组件呢? 另外,我将我的目的补充说明一下:
生成一个标准的ActiveX,它提供两个方法调用A、B。它可以被其他设计者通过Import ActiveX Control导入,然后设计者就可以在控件面板上直接拖放使用了。
不过需要从TWinControl继承
我的组件是从TComponent继承的,不是TWinControl :(
那么这一类的组件怎么转化为ActiveX组件呢?
跑题了!
请指点建ActiveX的标准方法,请建过的朋友指点我们。
另外你的ActiveX控件只是导出些函数,没有可似化的信息,何不直接建一
COM对象。
只好帮你UP了
我前面建的正是com对象,只不过不好用
推…………
建个Automation Object也行吧,支持dispinterface
象VB也可调用,vb如何调用不太清楚
我晚上看看书在说
因为它提供了IDispatch 接口,使用也是很方便的。可以不引入类型库,直接用CreateObject等方式调用。
在DELPHI,VB,PB....等工具中,居然这个函数使用极为相似,帮助中都有。
Com调用比较麻烦,还要在调用的地方写上接口声明,所以才想要建一个类似发布的ActiveX。
请您继续关注,谢谢。
Automation Object建的如何啦
另外,怎么从Com里返回一个文件类型啊,delphi不认,苦恼……
帮我
我想返回任意文件类型(File),delphi不认。
下面这贴自于DELPHI帮助的。
------------------------------------------
var
MSWord: Variant;
begin
...
MSWord := CreateOleObject('Word.Basic');
MSWord.XXXX(XXX,XXX); //为了你清楚,补充上这句
MSWord := Unassigned;
...
end;
-------------------------------------------
这是调用自动化对象的一般方法。
另外,也可以用CreateComObject
-----------------------------------------
var
obj: Variant;
begin
...
obj := CreateComObject( /* 参数为GUID */);
obj.XXXX(XXX,XXX); //要这样用,它必须是自动化对象.事实是调用IDispatch接口
obj := Unassigned;
...
end;
-------------------------------------------
当然,你那样用接口声明的方法也是比较常用的,只是它用起来麻烦一点,
但相对效率较高。2.参数返回文件类型?实在不明白你的意思。如果是传文件句柄,,,在很多情况下都是禁止的。
COM调用中,参数种类就那么有限几种,如果要传特定格式的数据,得进行一定转换。
1 我现在把调用方法改过来了,简便了一些。
2 我想在Com里定义一个方法,它的返回值为文件,也就是file类型的,但delphi不允许,我现在是用variant代替的,有什么好办法吗?
请大家指点,欢迎讨论。