打开Word2000文档的奇怪问题?(100分)

  • 主题发起人 主题发起人 faithjb
  • 开始时间 开始时间
F

faithjb

Unregistered / Unconfirmed
GUEST, unregistred user!
我是新手,但正跟着师兄做一个合同管理的软件,问题不大,但烦人!
该软件需要打开一个Word文档,要求挺简单的.我参考了一些前辈做的范例程序,
无外乎两种方法:1.使用Delphi6的控件面板的Servers上的控件TWordApplication及TWordDocument
var
wFileName:OleVariant;//在OpenDialog中指定的Word文档名
begin
.......
try
with WordApplication1 do
begin
Connect;
Documents.Open(wFileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam);
Visible:=True;
Caption:='新疆石油管理局';
Activate;
end
except on E:Exception do
begin
ShowMessage(E.Message);
WordApplication1.Disconnect;
Abort;
end;
end ;
......
end;

2.使用Ole自动化的方法,如:
var
   V: OleVariant;
   FileNameTemp :String;
   begin
   if OpenDialog1.Execute then
   begin
   FileNameTemp := OpenDialog1.FileName;
   V := CreateOleObject(′Word.Application′); //建立自动化对象
   V.Documents.Open(FileNameTemp); //打开指定文件
.......
end;
......
end;

运行程序时,存在的问题是:
若Word没有启动,且WinWord.exe进程不存在,那么点击'打开Word文档'按钮,系统
给出提示框"消息筛选器显示应用程序正在使用中",此时进入Win2000任务管理器中查看进程,可以发现
虽然Word没有启动,但WinWord.exe进程却存在.此时若再次点击'打开Word文档',相关文档能顺利打开,
这就出现了需要点击两次按钮才能打开相关文档的问题.
但若Word已经启动,或者存在WinWord.exe进程,那么就没有一点问题,点击一次按钮即可打开相关文档.
奇怪!!!!
请求高人指点,我先谢谢了!!

 
v..Visible:=true;
 
你这种方法是不是会出现程序和word是两个窗口?如果想合在一起,还是用OLE吧,这样才
像一个整体。
 
后退
顶部