2012-05-24 32 views
4

这主要是一个与Delphi语法相关的问题。在调用OLE对象的方法时,我需要将参数设置为True。如何将参数传递给OLE自动化对象,如MS Word

我需要设置的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; 

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程序,使上述两种方法中的任何一种都被使用?谢谢。

回答

8

可以编写:

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

或者使用:

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

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

是这个作品,它也是一个非常紧凑的解决方案,没有太多的线条以复加。谢谢 – LaBracca

+0

+1。 @ user193655,“没有太多要添加的行”?正好1;我不认为这是“太多”。 :-) –

相关问题