首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

初学者请问,如何样等上一步代码执行完毕之后再执行下一步代码

2012-06-10 
菜鸟请教,怎么样等上一步代码执行完毕之后再执行下一步代码!procedure TForm1.Button1Click(Sender: TObje

菜鸟请教,怎么样等上一步代码执行完毕之后再执行下一步代码!
procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://*.*.*.*/query/itemQueryAction.do?method=TrackQuery&itemno=123456789');

  button6.Click;
  end;

button6必须等上一行代码执行完毕之后再执行才有用。
sleep我尝试过了,不行。一使用sleep就整个全部都停了!

谢谢各位了!


[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://10.3.26.147/query/itemQueryAction.do?method=singleItemTrackQuery&itemno=ej834449550cs');

//button6.Click;
end;

var
CurDispatch: IDispatch; {save the interface globally }

{WebBrowser1的OnNavigateComplete2事件}
procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
if CurDispatch = nil then
CurDispatch := pDisp; { save for comparison }
end;

{WebBrowser1的OnDocumentComplete事件}
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
if (pDisp = CurDispatch) then {the document is loaded, not just a frame }
begin
button6.Click; {在网页完全加载完之后才执行} 
CurDispatch := nil; {clear the global variable }
end;
end;
[解决办法]

Delphi(Pascal) code
或在WebBrowser1DocumentComplete设置一个全局状态变量bOpenOk:=true;procedure TForm1.Button1Click(Sender: TObject);begin  bOpenOk:=false;  WebBrowser1.Navigate('http://*.*.*.*/query/itemQueryAction.do?method=TrackQuery&itemno=123456789');  while not bStop and not bOpenOk do  begin    sleep(100);    application.progressmessages;  end;  button6.Click;end; 

热点排行