TWordApplication句柄改变ReadOnly状态

时间:2015-10-01 21:45:54

标签: delphi mailmerge word-automation ole-automation

我正在使用MS Word文件使用TWordApplication。我需要在用户更改文档时显示消息,但是当文档是ReadOnly时,则不应显示消息。

打开只读文档时遇到问题,然后用户可以选择查看 - 编辑文档并进行一些更改。在这种情况下,我需要显示消息,但文档的ReadOnly属性没有改变。

如何在用户启用编辑文档时处理操作?

我没有任何想法,请建议我。

var 
  LWordApp: TWordApplication; 
  LWordDoc: _Document;
  LProtectionType: TOleEnum;
begin
  LWordApp:= TWordApplication.Create( nil );
  LWordApp.OnQuit := DocumentClose;
  LWordApp.Connect;
  ...
  LWordDoc:= LWordApp.Documents.Open(АFileName,   // FileName
                                     EmptyParam, // ConfirmConversion
                                     EmptyParam, // ReadOnly
                                     EmptyParam, // AddToRecentFiles
                                     EmptyParam, // PasswordDocument
                                     EmptyParam, // PasswordTemplate
                                     EmptyParam, // Revert
                                     EmptyParam, // WritePasswordDocument
                                     EmptyParam, // WritePasswordTemplate
                                     EmptyParam,  // Format
                                     EmptyParam,
                                     EmptyParam
                                    );
  LProtectionType := LWordDoc.ProtectionType;
  if AProtectionPassword <> '' then
  begin
    if LProtectionType <> wdNoProtection then
      Doc.Unprotect(AProtectionPassword);
  end;
  LWordApp.Visible := True;
  LWordDoc.Close(tmpSaveIT, EmptyParam, EmptyParam);
  LWordApp.Disconnect;
  LWordApp.Quit;
end;

procedure DocumentClose(Sender: TObject);
begin
  ShowMessage("Hello");
end;

1 个答案:

答案 0 :(得分:0)

ReadOnly用于指定您将打开文档,以及只读。 它不是当前文件的指标。