菜鸟请教,怎么样等上一步代码执行完毕之后再执行下一步代码!
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;
[解决办法]
或在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;