Delphi延时


本文整理自网络,侵删。

 
// 高精度的延时,精确到Ms , 100ms以内采用,或要求误差极小
// 删除Application.ProcessMessages 影响精度
procedure DelayMsEx(Ms: LongWord);
var
  iFreq, iStartCounter, iEndCounter: Int64;
begin
  QueryPerformanceFrequency(iFreq);
  QueryPerformanceCounter(iStartCounter);
  repeat
    QueryPerformanceCounter(iEndCounter);
    //Application.ProcessMessages;
  until ((iEndCounter - iStartCounter) >= Round(Ms * iFreq / 1000 ));
end;
 
 
// 精度很低,50ms以外还能凑活
// 及时去除 Application.ProcessMessages 误差也极大
// 仅适用误差要求不高,延时较长的场合
procedure DelayMs(Ms: LongWord);
var
  dwStartTime: LongWord;
begin
  dwStartTime := GetTickCount;
  repeat
    Application.ProcessMessages;
  until ((GetTickCount - dwStartTime) >= Ms);
end;

来源:https://blog.csdn.net/w709835509/article/details/17486943

相关阅读 >>

Delphi xe6 android 查看电池信息

Delphi setpriorityclass 设置当前程序的优先级

Delphi 正则表达式起步

Delphi实现解析百度搜索结果link?url=

Delphi中的sender:tobject对象解析

Delphi 中英文字符怎么按固定长度截断

Delphi 中判断一个字符是中文的方法

Delphi 调用dos nbtstat 并获得结果

Delphi �o置系�y�r�g

Delphi 实现批量文件名修改

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...