博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi延时 4种方法
阅读量:5171 次
发布时间:2019-06-13

本文共 871 字,大约阅读时间需要 2 分钟。

/挂起,不占CPU

sleep

//不挂起,占cpu

procedure Delay(msecs:integer);

var

FirstTickCount:longint;

begin

FirstTickCount:=GetTickCount;

repeat

Application.ProcessMessages;

until ((GetTickCount-FirstTickCount) >= Longint(msecs));

end;

// 定时器

procedure timerfun(handle:Thandle;msg:word;identer:word;dwtime:longword);stdcall;

begin

showmessage('到点了');

killtimer(handle,identer);//关闭定时器

end;

//其中的identer是定时器的句柄

procedure TForm1.Button1Click(Sender: TObject);

var

identer:integer;

begin

   identer:=settimer(0,0,2000,@timerfun);

   if identer=0 then exit; //定时器没有创建成功。

end;

// 不占CPU不挂起

function TForm1.HaveSigned(MaxWaitTime: Cardinal): Boolean;

var   I:Integer;

var   WaitedTime:Cardinal;

begin

          WaitedTime:=0;

          while      (WaitedTime<MaxWaitTime)   do

          begin

                  SleepEx(100,False);

                  Inc(WaitedTime,100);

                  Application.ProcessMessages ;

          end

end;

转载于:https://www.cnblogs.com/lzj1981/archive/2013/04/28/3049063.html

你可能感兴趣的文章
用virtualenv建立独立虚拟环境 批量导入模块信息
查看>>
Sublime Text3 插件:convertToUTF8
查看>>
BZOJ4060 : [Cerc2012]Word equations
查看>>
hdu2089不要62(数位dp)
查看>>
JAVA输出最大值和最小值
查看>>
64位weblogic11g安装
查看>>
oracle、mysql、sql server等;流行数据库的链接驱动配置
查看>>
UvaLive 6664 Clock Hands
查看>>
PCB 周期计算采用 SQL 函数调用.net Dll 标量函数 实现
查看>>
Problem B: 取石子
查看>>
dbflow 批量 增删查改
查看>>
Mybatis常见配置错误总结
查看>>
Python学习笔记001——Linux
查看>>
Vue: 常用指令
查看>>
Asp.Net中的跨平台的
查看>>
第一次作业
查看>>
工作日记
查看>>
weblogic 10.x 上开发restful服务
查看>>
在团队中我的索引卡任务
查看>>
我的一点企业做云经验
查看>>