-->

如何将参数传递给一个OLE自动化对象,如MS Word(How to pass a paramete

2019-09-17 11:39发布

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

我需要在Word自动化(这是从设置Word中参考 ):

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

它可以使用

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

任何人都可以请修改上面我GetWordVersion程序,使上面使用的2种方法中的任何一个? 谢谢。

Answer 1:

你可以写:

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

或者使用:

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

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


文章来源: How to pass a parameter to a OLE Automation object such as MS Word