我正在构建一个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
作为您的应用程序对象。 - 将您的处理程序分配给应用程序对象的事件。
- 根据您想要执行的具体操作,最适用的事件是
OnDocumentBeforeClose
和OnQuit
。
为了说明这一点,这是我可以设计的最简单的示例:
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/