如何将参数传递给OLE自动化对象,如MS Word

时间:2012-05-24 07:38:38

标签: delphi ms-word ole-automation

这主要是与Delphi语法相关的问题。我需要在调用OLE对象的方法时将参数设置为True。

我需要在Word Automation中设置(这来自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;

Here(检查接受的答案)似乎已经完成了同样的事情,但如果我尝试它:不编译。我这里只复制相关部分:

Const wdDoNotSaveChanges = 0
[...]

  wdo.Quit wdDoNotSaveChanges 

[...]

End Function

重要的: 而不是使用

// this is from Word Reference    
wdApp.Quit SaveChanges:=wdDoNotSaveChanges

可以使用

// from Word Reference
wdApp.NormalTemplate.Saved = True

有人可以修改我上面的GetWordVersion程序,以便使用上述两种方法中的任何一种吗?感谢。

1 个答案:

答案 0 :(得分:8)

你可以写:

Wordapp.Quit(调用SaveChanges:= wdDoNotSaveChanges);

或者使用它:

word := CreateOleObject('Word.Application'); 

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