在delphi中添加新的word文档

时间:2013-01-28 08:59:54

标签: delphi ms-word delphi-xe

我正在建立一个delphi表单,在MS Word中添加一个新的word文档并等待用户插入文本和编辑文档,保存文件并退出表单MS Word,然后获取文件名和文件路径

 WordApp := CreateOleObject('Word.Application');
 WordApp.Visible := True;
 Doc := WordApp.Documents.add();

等待用户插入文本并编辑文档并保存文件并退出表格MS Word THEN

Doc.Save;
DocName := Doc.Name;
Docpath := IncludeTrailingPathDelimiter(Doc.path) + DocName;

with ZipForge1 do
begin
  FileName := Zipfilename;
  OpenArchive;
  Options.StorePath := spNoPath;
  AddFiles(Docpath);
  CloseArchive;
end;

1 个答案:

答案 0 :(得分:5)

您可以编写自己的事件接收器来收听Word应用程序的OnQuit事件。但是,切换到早期绑定的COM会更容易。 Word2000.pas中的导入类型库包含您需要的所有内容。

  • TWordApplication用于您的应用程序对象。
  • 将处理程序分配给应用程序对象的事件。
  • 根据您的具体要求,最适用的事件是OnDocumentBeforeCloseOnQuit

为了说明,这是我可以设计的最简单的例子:

uses
  Word2000;

procedure TForm1.Button1Click(Sender: TObject);
var
  WordApp: TWordApplication;
begin
  WordApp := TWordApplication.Create(Self);
  WordApp.Visible := True;
  WordApp.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
  WordApp.OnQuit := WordAppQuit;
  WordApp.OnDocumentBeforeClose := WordDocumentBeforeClose;
end;

procedure TForm1.WordAppQuit(Sender: TObject);
begin
  ShowMessage('Word application quit');
end;

procedure TForm1.WordDocumentBeforeClose(ASender: TObject; 
  const Doc: WordDocument; var Cancel: WordBool);
begin
  ShowMessage(Doc.Name + ' closed');
end;