为什么加上这句后,我的程序关闭不了了???(100分)

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

SexyGG

Unregistered / Unconfirmed
GUEST, unregistred user!
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
 
是不是因为一直没有退出这个循环呢?
 
Application.ProcessMessages将会导致CPU占用率达到 100%,如果此句如果在线程中执行,则ReadyState永远不会=READYSTATE_COMPLETE ,而是=3
 

Application.ProcessMessages;
在此处应该相当于:sleep(n) 了!
 
那怎么办?
 
WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
中设置完成标志为true
 
不好意思
怎么设?
那个是别人给的源码~~~
 
谁给个源码就把分全给他
 
窗体上放一个Button1和WebBrowser1

const TimeOunt=30;//超时时间
...
var
BrowseTime:integer; //正在访问的页面花费的浏览时间
Complete:boolean; //完成标志
...
procedure TForm1.Button1Click(Sender: TObject);
begin
BrowseTime:=0;
Complete:=false;
WebBrowser1.Navigate(Page.Url,Flags);
while (not Complete and(BrowseTime<TimeOut) do//浏览器有可能浏览超时
begin
BrowseTime:=BrowseTime+1;
sleep(3000);
end;
ShowMessage('浏览完毕!');
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
Complete:=true;
end;


 
谢谢你
谢谢你的源码
很详细:)
 
后退
顶部