delphi - 在delphi中添加新的word文档

标签 delphi ms-word delphi-xe

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

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

等待用户插入文本并编辑文档并保存文件并退出 MS Word,然后

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

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

最佳答案

您可以编写自己的事件接收器来监听 Word 应用程序的 OnQuit 事件。然而,切换到早期绑定(bind)的 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;

关于delphi - 在delphi中添加新的word文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14558545/

相关文章:

java - 从 COM 端口读取数据

delphi - idhttp:特定站点上的 SSLv3_READ_BYTES 错误

android - 如何以编程方式在 Android 上创建包含图像的 Word 文档?

delphi - 将 1.000 个表单中的多个标签设置为透明?

delphi - 调试信息 {$D+} 使我的 EXE 大小增加了 6MB

delphi - 将 TurboPower Lockbox 2 转换为 LockBox 3

delphi - OpenGL 多重矩阵变换

delphi - 自动调整备忘录大小

vba - 如何使用 VBA 宏选择 Microsoft Word 文档中的每个表格

C# 将图像从 PowerPoint 复制到 Word