Q
qdlover
Unregistered / Unconfirmed
GUEST, unregistred user!
webbrowser控件打开后,不能马上取出数据,必须等busy=false才能取数据,如果放到
两个过程里当然可以,可是要获得一个url的代码必须用一个过程实现,应该怎么做?
用一个timer可以判断webbrowser是不是忙,所以我想是不是能够在过程里面写一个循
环,判断webbrowser是不是忙
,可是用普通的循环就是死循环,而不是而计数器一样可以执行,不知道大家有什么建
议,多谢
我写的是个死循环,那个大佬给个答案
function Tform1.geturlresult(url:string):ansistring;
var i,j:integer;
var webdoc:HTMLDOCUMENT;
idsp:IDispatch;
pagestring:ansistring;
var t1:double;
begin
wb1.Navigate(url);
t1:=now()+5;
while t1>=now() do
begin
if not wb1.Busy then break;
end;
if not wb1.busy then
begin
idsp:=wb1.Document;
webdoc:=wb1.Document as HTMLDOCUMENT;
pagestring:=webdoc.body.innerText;
webdoc:=nil;
geturlresult:=pagestring;
end
else
geturlresult:='error';
end;
两个过程里当然可以,可是要获得一个url的代码必须用一个过程实现,应该怎么做?
用一个timer可以判断webbrowser是不是忙,所以我想是不是能够在过程里面写一个循
环,判断webbrowser是不是忙
,可是用普通的循环就是死循环,而不是而计数器一样可以执行,不知道大家有什么建
议,多谢
我写的是个死循环,那个大佬给个答案
function Tform1.geturlresult(url:string):ansistring;
var i,j:integer;
var webdoc:HTMLDOCUMENT;
idsp:IDispatch;
pagestring:ansistring;
var t1:double;
begin
wb1.Navigate(url);
t1:=now()+5;
while t1>=now() do
begin
if not wb1.Busy then break;
end;
if not wb1.busy then
begin
idsp:=wb1.Document;
webdoc:=wb1.Document as HTMLDOCUMENT;
pagestring:=webdoc.body.innerText;
webdoc:=nil;
geturlresult:=pagestring;
end
else
geturlresult:='error';
end;