如何向OLE自动化对象传递参数,例如MS Word

4
这主要涉及Delphi语法问题。在调用OLE对象的方法时,我需要将一个参数设置为True。
我需要在Word自动化中进行设置(参考Word Reference)。
wdApp.Quit SaveChanges:=wdDoNotSaveChanges

作为一个例子,我想要执行一个虚拟过程(请注意WordApp.Quit!),具体步骤如下:
Procedure GetWordVersion;
    var
      WordApp: OLEVariant;
    begin
      { Create the OLE Object }
      Try
          WordApp := CreateOLEObject('Word.Application');
          WordVersion := WordApp.version;
           WordApp.Quit; // >-- HERE!!!!
      except
        on E: Exception do
        begin
          WordVersion := -1;
        end;
      End;
end;

这里(请查看被接受的答案)似乎可以做同样的事情,但是如果我尝试它:无法编译。 我只复制相关部分:

Const wdDoNotSaveChanges = 0
[...]

  wdo.Quit wdDoNotSaveChanges 

[...]

End Function

重要提示:不要使用
// this is from Word Reference    
wdApp.Quit SaveChanges:=wdDoNotSaveChanges

可以使用

IT技术

实现。
// from Word Reference
wdApp.NormalTemplate.Saved = True

请问能否修改我上面的GetWordVersion过程,以便使用其中任意一种方法?谢谢。

1个回答

8
您可以写成以下方式:

Wordapp.Quit(SaveChanges:=wdDoNotSaveChanges);

或者使用下面这行代码:
word := CreateOleObject('Word.Application'); 

.... 
word.DisplayAlerts := false;
word.Quit; 

是的,这个方案可行,而且也很紧凑,不需要添加太多代码。谢谢。 - UnDiUdin
+1. @user193655,“需要添加的行不太多”?恰好只有1行;我认为这并不算“太多”。 :-) - Ken White

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接