D5中TWordApplication和TWordDocument的疑问(180分)

  • 主题发起人 主题发起人 Blue
  • 开始时间 开始时间
B

Blue

Unregistered / Unconfirmed
GUEST, unregistred user!
TWordApplication包含Onquit和OnStartup两个事件,在下的疑问是为什么
我在OnStartup事件中的代码从来都不执行.
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
WordApplication.Connect;
WordApplication.WindowState:=wdWindowStateMaximize;
WordApplication.Visible:=True;
WordApplication.Activate;
WordDocument.Connect;
end;
procedure TForm1.WordApplicationStartup(Sender: TObject);
begin
Memo.Lines.Add('Word has been started!');
end;
而Onquit事件更奇怪, 当激活的Word中有打开的文档的窗口时, 关闭Word才会触发Onquit事件, 如果Word中所有的文档窗口都被关闭掉了,这时如果关闭
Word就不会触发ONquit事件.
更可恶的事件还在后面, 因为我想追踪用户关闭Word的动作, 所以在WordDocument的三个事件(Onclose,OnNew, OnOpen)里也都添加了代码结果还是一个也不执行(乖乖龙的东, Word这个东东真气人!)
如果你看到这里还有耐心的话, 请坚持住继续看下去, 只剩下最后一个疑问了, 在WordDocument和WordApplication里都有ConnectKind的属性, 我设置为ckRunningOrNew,本希望无论什么时候执行的时, 或者从当前的Instance中激活, 如果没有激活的实例, 则创建一个新的Word实例.可惜当我把先前程序中创建的Word实例关掉后, 再次点击按钮希望自动创建一个新的Word实例时让人失望的事情又发生了, 弹出的对话框告诉我RPC已经断开连接!!!
我已经被Word折磨的不行了, 哪为高人能帮帮我, 180分呀!



 
WordAocument1和WordApplication1没有建立关联:
WordDocument1.ConnectTo(WordApplication1.Documents.Open(TempDoc(文件名),EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam));
 
你最后一个问题可看http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=265685
我的回答。
 
agree with BrainTwist
 
我插一下嘴:
我试过BrainTwist,还是会报错的。
procedure TForm1.WordDocument1Close(Sender: TObject);
begin
Wordapplication1.Disconnect ;
WordDocument1.Disconnect ;
end;
没用。
 
接受答案了.
 
后退
顶部