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分呀!
我在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分呀!