可否将Office的Com调用改为先期连接?(100分)

  • 主题发起人 主题发起人 风扬
  • 开始时间 开始时间

风扬

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi本身提供了Excel2000等Office的UNIT,但在以前看到的资料或别人的代码中,都没有看到用先期连接的,一般都是用Varaint来获得后期连接。即
var
v:varaint;
begin
V:=CreateOleObject('Excel.Application'); //获得Execl Com服务器的后期连接
...
end;
但我在实际使用中发现这样速度太慢了,请教有没有用disp接口来完成的方法?
 
没有人知道还是分数太少?顶一下!
 
是说的是不是这个?
GetActiveOleObject('Word.Application')
 
不是啦,应该是获得Office2000的TLB库,只是我不知道从哪里获得而已
 
对于标准的Com调用,就是首先导入Tlib库的,
文件是 C:/Program Files/Microsoft Office/Office10/MSWORD.OLB,你打开就可以了。
 
用不着这么麻烦的。对于一般的Office应用,delphi早就做好封装了,我们直接从元件板的Servers页上选择相应的元件即可。如要操纵Word就选择TWordApplication,它封装了MS的WordApplicaion(也许拼写不准确)接口,并以TOleServer的形式提供给我们方便地使用,使用它有一个最大的好处就是先期连接,并可以编写代码时有代码提示。但缺点也是有一些的。故比较实用的办法就是在使用WordApp:TWordApplication的同时也使用一个OleVariant变量来代表此WordApplication实例,如vWordApp,在不同的场合选择WordApp或vWordApp来调用功能。
 
补充上一条:
vWordApp:olevariant;

...
对它赋值:
vWordApp := WordApplication1.DefaultInterface;
 
后退
顶部