菜鸟请教,怎么样等上一步代码执行完毕之后再执行下一步代码!

shooter1979 2012-06-09 08:55:01
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://*.*.*.*/query/itemQueryAction.do?method=TrackQuery&itemno=123456789');

button6.Click;
end;

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

谢谢各位了!
...全文
1029 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shooter1979 2012-06-11
  • 打赏
  • 举报
回复
多谢 sz_haitao
是不是有两个变量:bStop 和 bOpenOk
haitao 2012-06-09
  • 打赏
  • 举报
回复
就是标志状态的全局变量
shooter1979 2012-06-09
  • 打赏
  • 举报
回复
多谢 s11ss
真的很有用!

请教 sz_haitao
或在WebBrowser1DocumentComplete设置一个全局状态变量bOpenOk:=true;

或者 和 设置全局变量是什么意思啊!?
haitao 2012-06-09
  • 打赏
  • 举报
回复
或在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;
s11ss 2012-06-09
  • 打赏
  • 举报
回复
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;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧