2012-05-24 31 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;我不認爲這是「太多」。 :-) –

相關問題