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

LaB*_*cca 4 delphi ms-word ole-automation

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

我需要在Word Automation中设置(这是来自Word Reference):

wdApp.Quit SaveChanges:=wdDoNotSaveChanges
Run Code Online (Sandbox Code Playgroud)

作为一个例子我想做的虚拟程序(请注意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;
Run Code Online (Sandbox Code Playgroud)

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

Const wdDoNotSaveChanges = 0
[...]

  wdo.Quit wdDoNotSaveChanges 

[...]

End Function
Run Code Online (Sandbox Code Playgroud)

重要提示:而不是使用

// this is from Word Reference    
wdApp.Quit SaveChanges:=wdDoNotSaveChanges
Run Code Online (Sandbox Code Playgroud)

可以使用

// from Word Reference
wdApp.NormalTemplate.Saved = True
Run Code Online (Sandbox Code Playgroud)

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

Lar*_*ars 8

你可以写:

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

或者用这个:

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

.... 
word.DisplayAlerts := false;
word.Quit; 
Run Code Online (Sandbox Code Playgroud)