D
deadren
Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个嵌入到WEB中的ACTIVEFORM,之中只有一个按钮,点击这个按钮弹出一个FORM
在这个FORM中创建WORD并嵌入一个panel中,点击按钮运行前8次都正常,但是到第九次以后就会出错,WORD可以创建但是不能打开文档。
错误信息是:
access violation at address 006D6574.read of address 006D6574.
但是刷新一下WEB页面,就又正常了
代码如下:
if FindWindow('OpusApp', nil)<>0 then
BEGIN
cfg.MessageDlg('word 正在使用,系统将关闭它!', mtinformation, [mbok], 0);
SendMessage(FindWindow('OpusApp', nil), WM_CLOSE, 0, 0);
END;
try
myapp := CreateOleObject('word.application');
except
cfg.MessageDlg('创建WORD对象失败!您可能未安装WORD或安装已损坏!', mtinformation, [mbok], 0);
Application.Terminate;
end;
myapp.Visible := true;
------------------
try
WDHD := FindWindow('OpusApp', nil); ////查找该对象句柄
except
cfg.MessageDlg('初始化WORD失败!', mtinformation, [mbok], 0);
Application.Terminate;
end;
if wdhd<>0 then
begin
try
Windows.SetParent(WDHD, Self.Panel1.Handle); //将对象内嵌到panel中
except
cfg.MessageDlg('嵌入WORD失败!', mtinformation, [mbok], 0);
Application.Terminate;
end;
end
else
begin
cfg.MessageDlg('嵌入WORD失败!', mtinformation, [mbok], 0);
Application.Terminate;
end;
-------------------------
try
doc := myapp.documents.open(tempdir + 'temp.doc',False,False,False,'','',False,'','',0);
except
cfg.MessageDlg('打开文档失败!', mtinformation, [mbok], 0);
docstate := False;
exit;
Self.Close;
不知那位前辈遇到过这种情况。请赐教
在这个FORM中创建WORD并嵌入一个panel中,点击按钮运行前8次都正常,但是到第九次以后就会出错,WORD可以创建但是不能打开文档。
错误信息是:
access violation at address 006D6574.read of address 006D6574.
但是刷新一下WEB页面,就又正常了
代码如下:
if FindWindow('OpusApp', nil)<>0 then
BEGIN
cfg.MessageDlg('word 正在使用,系统将关闭它!', mtinformation, [mbok], 0);
SendMessage(FindWindow('OpusApp', nil), WM_CLOSE, 0, 0);
END;
try
myapp := CreateOleObject('word.application');
except
cfg.MessageDlg('创建WORD对象失败!您可能未安装WORD或安装已损坏!', mtinformation, [mbok], 0);
Application.Terminate;
end;
myapp.Visible := true;
------------------
try
WDHD := FindWindow('OpusApp', nil); ////查找该对象句柄
except
cfg.MessageDlg('初始化WORD失败!', mtinformation, [mbok], 0);
Application.Terminate;
end;
if wdhd<>0 then
begin
try
Windows.SetParent(WDHD, Self.Panel1.Handle); //将对象内嵌到panel中
except
cfg.MessageDlg('嵌入WORD失败!', mtinformation, [mbok], 0);
Application.Terminate;
end;
end
else
begin
cfg.MessageDlg('嵌入WORD失败!', mtinformation, [mbok], 0);
Application.Terminate;
end;
-------------------------
try
doc := myapp.documents.open(tempdir + 'temp.doc',False,False,False,'','',False,'','',0);
except
cfg.MessageDlg('打开文档失败!', mtinformation, [mbok], 0);
docstate := False;
exit;
Self.Close;
不知那位前辈遇到过这种情况。请赐教