我正在建立一个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;
答案 0 :(得分:5)
您可以编写自己的事件接收器来收听Word应用程序的OnQuit
事件。但是,切换到早期绑定的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;