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中如何控制webbrowser滚动条

Delphi 使用webbrowser控件获取含框架的网页的完整html代码

Delphi 鼠标跟随代码

dephi获取系统常量

Delphi 隐藏任务栏程序,取消自动对齐和网格对齐

monthdays:给出一个月的天数

Delphi rest客户端程序

Delphi读写utf-8、unicode格式文本文件

Delphi string与tstringlist

Delphi webbrowser1 保存文档为 .html

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



打赏

取消

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

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

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

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

评论

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