请问delphi中如何在多线程环境下操作webbrowser控件,也就是说,webbrowser控件支持多线程吗?
请问delphi中如何在多线程环境下操作webbrowser控件,也就是说,webbrowser控件支持多线程吗?大侠能否给段代码演示一下,我webbrowser一闪就没...
请问delphi中如何在多线程环境下操作webbrowser控件,也就是说,webbrowser控件支持多线程吗?
大侠能否给段代码演示一下,我webbrowser一闪就没有了,不知道,为什么,
多谢大侠的帮助,好人一生平安啊,呵呵,基本代码如下:
procedure TMyThread.Execute;
var WebBrowser: TWebBrowser;
begin
activex.CoInitialize(nil);
try
WebBrowser := TWebBrowser.Create(form1);
WebBrowser.Silent:=true;
WebBrowser.ParentWindow:=form1.Handle;
WebBrowser.OnDocumentComplete := form1.proDocumentComplete;
WebBrowser.Navigate('http://www.baidu.com');
Application.ProcessMessages;
WebBrowser.Show;
except
WebBrowser.Destroy;
end;
activex.CoUninitialize();
end; 展开
大侠能否给段代码演示一下,我webbrowser一闪就没有了,不知道,为什么,
多谢大侠的帮助,好人一生平安啊,呵呵,基本代码如下:
procedure TMyThread.Execute;
var WebBrowser: TWebBrowser;
begin
activex.CoInitialize(nil);
try
WebBrowser := TWebBrowser.Create(form1);
WebBrowser.Silent:=true;
WebBrowser.ParentWindow:=form1.Handle;
WebBrowser.OnDocumentComplete := form1.proDocumentComplete;
WebBrowser.Navigate('http://www.baidu.com');
Application.ProcessMessages;
WebBrowser.Show;
except
WebBrowser.Destroy;
end;
activex.CoUninitialize();
end; 展开
3个回答
展开全部
可以创建若干个线程,动态也创建若干个webbrowser控件.一个线程操作一个webbrowser
也可以多个线程操作一个webbrowser,但是要注册在使用webbrowser进行同步.同一时间内要保证只有一个线程在访问webbrowser控件!
也可以多个线程操作一个webbrowser,但是要注册在使用webbrowser进行同步.同一时间内要保证只有一个线程在访问webbrowser控件!
追问
希望大侠看下我的问题补充,再帮我解答一下,谢谢^_^
追答
因为它的执行片已经执行完了,当然一闪就没了!
还有你对线程没有了解.
在操作VCL控件的时候要注册同步的!
你这是创建了一个线程还是多个线程呢?
如果可以把代码给我发过来一份吧,我帮你修改下
展开全部
帮你修改了一下,下回注意操作VCL要用Synchronize,顺便帮你删掉了一些无用的语句
procedure TMyThread.Execute;
begin
Synchronize(run);
end;
procedure TMyThread.run;
var WebBrowser: TWebBrowser;
begin
activex.CoInitialize(nil);
try
WebBrowser := TWebBrowser.Create(form1);
WebBrowser.Silent:=true;
WebBrowser.ParentWindow:=form1.Handle;
WebBrowser.OnDocumentComplete := form1.proDocumentComplete;
WebBrowser.Navigate('http://www.baidu.com');
//Application.ProcessMessages; 不需要
//WebBrowser.Show; 不需要
except
WebBrowser.Destroy;
end;
activex.CoUninitialize();
end;
在XP SP3 Delphi XE下测试通过
好用记得加分哦
procedure TMyThread.Execute;
begin
Synchronize(run);
end;
procedure TMyThread.run;
var WebBrowser: TWebBrowser;
begin
activex.CoInitialize(nil);
try
WebBrowser := TWebBrowser.Create(form1);
WebBrowser.Silent:=true;
WebBrowser.ParentWindow:=form1.Handle;
WebBrowser.OnDocumentComplete := form1.proDocumentComplete;
WebBrowser.Navigate('http://www.baidu.com');
//Application.ProcessMessages; 不需要
//WebBrowser.Show; 不需要
except
WebBrowser.Destroy;
end;
activex.CoUninitialize();
end;
在XP SP3 Delphi XE下测试通过
好用记得加分哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
webbrowser 有bug 多线程不稳定,经常报错,或者无故退出.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询