我的功能是单击按钮时的反应。当我单击按钮时,它应该开始重复并写入数组中的值,并将它们显示在主窗体的标签中。问题在于功能睡眠 - 有一些错误或其他原因,因为当我单击按钮时,它等待了很长一段时间,然后它最终开始执行操作,但速度很快。让我们看看我的代码。感谢您的建议。
procedure TForm1.ButtonMereniClick(Sender: TObject);
var
iterator: Integer;
begin
iterator := 1;
repeat
//write some values stored int arrays to labels on form
LabelTeplota.Caption:='Teplota: '+FloatToStr(poleTeplota[iterator]);
LabelVlhkost.Caption:='Vlhkost: '+FloatToStr(poleVlhkost[iterator]);
LabelTlak.Caption:='Atmosférický tlak: '+FloatToStr(poleTlak[iterator]);
LabelRychlost.Caption:='Rychlost větru: '+FloatToStr(poleRychlost[iterator]);
LabelRychlost.Caption:='Rychlost větru: '+FloatToStr(poleRychlost[iterator]);
LabelIterator.Caption:='iterator: '+IntToStr(iterator);
Sleep(500);//should be 5000
Inc(iterator);
until iterator = 20;
end;
不要使用Sleep
GUI 线程中的函数,因为您阻塞了正常的消息处理并且您的应用程序行为异常。
目前尚不清楚你为什么使用Sleep
在你的代码中。也许你应该更新标签OnTimer
的事件处理程序TTimer
组件而不是使用循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)