如何学习OLE自动控制(50分)

  • 主题发起人 主题发起人 李光
  • 开始时间 开始时间

李光

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟是一个自动控制的菜鸟。我看到很多OLE自动的教材上建立OLE
自动客户端都是使用
var
ServerName:CoServerName;
begin
ServerName:=CoServerName.Create;
//.....
end;
这样的方式来建立的。
但是我看到很多OLE自动控制的客户端都是使用CreateObject
('Server.Application');这样的方式来建立。请问应该怎样OLE自动控
制服务端,编写才能这样建立OLE客户端。
怎么样,是不是很菜啊!让你见笑了。
 
随便说说,我也不是很清楚,正在学习,共同探讨

其实这两种方法都是相同的,
第一种:好象需要uses server_tlb.pas (type library)
第二种:实际上由于在注册表中已经存在classid,
所以直接创建该对象,而不必uses server_tlb.pas

 
我也想听听
 
用CoServerName.Create或者用CreateOleObject方法其实质都是调用CoCreateInstance这个api
对于delphi开发的Server,delphi已经自动建立了一个类Co..,它在.._tlb.pas中,所以你要调用
DELPHI开发的SERVER,重要直接用CoClass就可以了,就象你刚才的例子,但是如果是其他Server
因为没有CoClass,所有可以直接调用CoCreateInstance或者用Delphi在ComObj.pas中定义的一个
比较简单的函数CreateOlbObject就可以了,当然还有好多其他调用的方法
 
采用 interface 和olevariant 是有区别的,
interface 快一些, olevariant 简单,delphi替你做了很多(olevariant 慢的重要原因)。
推荐你去 borland.com search " automation ", 有一篇关于automation word
and excel 的文章,写的很好,里面有两种方法的例子,并且有详细的说明,好象
分两个部份,每个部份都有十页左右
 
CO..用的是前期绑定,DELPHI可以进行语法检查,而且运行速度快
CREATEOLEOBJECT用的是后期绑定,不能进行语法检查,运行速度慢
 
有待解决
 
无非就是在注册一下。编辑类型库时有一个注册表的图标点一下即可,另外也可以使用BIN目录下
的TREGSVR来进行注册,方法是Tregsvr 程序员。调用格式是CreateOleObject('程序员.接口
名')(没有I),另外我写了这方面的一篇文章,现在太忙,没时间上传,等这个项目结束以后,
一定上传到网络上与大家共享,我急着用分,这50分我收回了,大家对不起。
 
接受答案了.
 
后退
顶部