怎样解决OleContainer控件在失去焦点后无响应的问题(100分)

  • 主题发起人 主题发起人 snake1118
  • 开始时间 开始时间
S

snake1118

Unregistered / Unconfirmed
GUEST, unregistred user!
我用OleContainer打开了一个WORD文件,包括其菜单,但是当OleContainer控件失去焦点后,就会成为无响应状态,菜单不见了,滚动条也失灵了,请问高手如何解决这个问题??[:D]
 
请各位帮帮忙
 
改了一下,希望对楼主有用。
var
a, b, c, App: OleVariant; //添加a, b, c三个无用的临时变量
begin
try
App := GetActiveOleObject('Word.Application');
except
try
App := CreateOleObject('Word.Application');
except
Exit;
end;
end;
App.Visible := false;
if OpenDialog1.Execute then
begin
App.Documents.open(filename:=OpenDialog1.FileName);
App.Selection.Find.ClearFormatting;
App.Selection.Find.Text := '222';
if App.Selection.Find.Execute then
ShowMessage('GOT')
else
ShowMessage('NO');
App.Documents.Application.Quit(a, b, c); //直接退出WORD了
end;
end;
 
谢谢~我试试哈!
 
哦,其实这样的话我直接用App.Quit;就可以关闭WORD了,但是这里有个问题,关闭我查下一个文件还要重新打开,那速度要慢很多很多。而我每次要在100多个文件中搜索,这样显然不太合适。所以不知道有没有其他的方法,能够快速的查找???
 
高手帮帮忙啊~~~~~~~~[:(]
 
如果不用App.Documents.Close;那打开一个WORD文件就会自动产生一个备份文件,我搜索了一边所有的WORD文件,结果数量也多了一倍……
 
procedure TForm1.Button1Click(Sender: TObject);
var
App: Variant;
i: integer;
begin
try
App := GetActiveOleObject('Word.Application');
except
try
App := CreateOleObject('Word.Application');
except
Exit;
end;
end;
App.Visible := false;
app.documents.open(extractfilepath(application.exename)+'11.doc');//看清这一行
for i := 0 to 10 do
if OpenDialog1.Execute then
begin
App.Documents.open(filename := OpenDialog1.FileName);
App.Selection.Find.ClearFormatting;
App.Selection.Find.Text := '222';
if App.Selection.Find.Execute then
ShowMessage('GOT')
else
ShowMessage('NO');
//————————————————————————————————
App.activeDocument.Close; //也看清这一行,象我这样就不会跳出WORD界面
end;
end;
 
这个功能是用在哪里....请楼主说明一下.
 
newsmile的回答是正确的,非常感谢!

另外,我还有个问题,我要在大量的WORD文件中查找字符串,这样的操作效率好象不高,速度比较慢,我另开了个贴,希望高手再去拿分
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3619530
 

Similar threads

后退
顶部