2010-08-02 36 views
1

如何禁用「打印」&在Word中使用WordApplication(delphi7)「打印預覽」?在delphi7中使用WordApplication

+2

可以在Word中禁用這些功能提取/返回參數

  • 在TWordObject.Create,改變ApplicationEvents?如果是這樣,你可以記錄你禁用函數的宏,然後把這個宏轉換成Delphi。但我認爲根本不可能禁用這些功能。 – 2010-09-07 12:27:17

  • +0

    如果您不能禁用此功能,也許您可​​以使用支持ms字的文檔文本控件編寫自己的小型word-doc-file兼容編輯器。像TRichView一樣 – 2011-02-24 00:28:48

    回答

    1

    一種方法是設置COM事件接收器並偵聽IApplicationEvents2或IApplicationEvents3。您可以響應DocumentBeforePrint()並設置取消標誌。這應該禁用打印,但不知道打印預覽。我有一些搜索,但沒有找到一個很好的從德爾福這樣做的參考(但我確信它可以做...)

    如果你在VBA工作,你也可以創建FilePrint和FilePrintPreview宏來覆蓋默認行爲並禁用打印功能。

    更多信息

    先看樣品\ Program Files文件\ Borland的\ Delphi7的\演示\的ActiveX \ OleAuto \ Word8 \ word8auto.dpr

    這僅捕獲該IApplicationEvents。您需要將其擴展爲支持IApplicationEvents2。

    從看代碼,需作修改爲:

    1. 更改使用的Word97到Word2000中(或WordXP)
    2. 添加新的事件/屬性TWordEventSink(FOnDocumentBeforePrint,FOnDocumentBeforeSave等)
    3. 向TWordObject添加新事件/屬性
    4. 在TWordEventSink.Invoke中實現新事件。當心在TWordEventSink.Create調用ApplicationEvents2