注册 登录
编程论坛 Delphi论坛

关于sleep()的应用

yanqw 发布于 2007-02-23 19:30, 3343 次点击

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 10 do
begin
label1.Caption:=inttostr(i);
sleep(1000);
end;
end;
想通过以上代码,实现每次循环中label1的caption动态显示,但为什么只有在这段代码执行完之后,只显示10,而中间的1到9都不显示呢?
菜鸟提问,请见谅!谢谢了!

5 回复
#2
xu20002007-02-23 19:52

关于sleep在Delphi的帮助是这样解释的。
Sleep pauses program executions as specified by the milliseconds parameter. Under Windows, Sleep is just a link to the Sleep function in the system API. Under Linux, Sleep calls the usleep library routine.
我的英文不好,不能完整的翻译出来。
帮助中好像说的是暂停程序,即什么代码也不执行。

#3
yanqw2007-02-23 20:09
执行到sleep()时候是什么都不执行,但是sleep()之前的caption赋值应该是执行的,但为什么不显示呢?
#4
sgliuxiu2007-02-23 20:14
"sleep按定义的毫秒数来暂停程序运行.在windows中,sleep只是连接到系统api中的sleep函数."
是不是这样翻译的?
如果这样的话,你用这个函数定义1000毫秒,执行完一个循环停止1000毫秒后,马上执行下一个循环,所以啊,只显示10了.
#5
yanqw2007-02-23 21:00
不好意思还是不太明白!
那么请问有什么好的方法可以让他动态显示1到10呢?
谢谢!
#6
xu20002007-02-23 21:19
用Timer控件。
1