当前位置:首页 >> 信息与通信 >>

BCB中实现延时


中实现延时(不依赖机器的速度 不依赖机器的速度) 如何在 BCB 中实现延时 不依赖机器的速度
因为 Sleep 的作用是把当前线程转为休眠状态(暂时失去 CPU 资源)一段时间,而不是仅仅“延时”。 所以,你的程序在使用 Sleep 后,整个线程,包括消息循环都没有执行的机会。在 GUI 主线程里面要 慎重使用这个函数,因为整个界面都会被“Sleep”。你可以使用 Timer,或者自己在循环里面判断时间 流逝,同时使用 Application->ProcessMessages(),以保证消息队列的及时处理。
Sleep( 我常用: 用两个 GetTickCount( )函数相减得到时钟数, )的缺点是延时时,不再响应消息,若时间较长,象死了一样,所以,

void {

delay(unsigned

int

n);

//

延长 n 毫秒

int

t0=GetTickCount(

);

while

(GetTickCount()-t0<n) Application->ProcessMessages(); // 响应消息

}

本文主要介绍了分别用 TTtimer 控件,Sleep 函数,GetTickCount 函数来实现延时的方法: 1)TTtimer 控件 TTtimer 控件的实质是调用 Windows API 定时函数 SetTimer 和 KillTimer 来实现的,并简 化了对 WM_TIMER 消息的处理过程。通过设置 OnTimer 事件和 Interval 属性,我们可以很方便的产 生一些简单的定时事件。 2)Sleep 函数 Sleep 函数用来使程序的执行延时给定的时间值。Sleep 的调用形式为 Sleep(milliseconds), 暂停当前的进程 milliseconds 毫秒。Sleep 的实现方法其实也是调用 Windows API 的 Sleep 函数。例 如: sleep(1000); //延迟 1000 毫秒

Sleep 会引起程序停滞,如果你延迟的时间较长的话,你的程序将不能够响应延时期间的发生的其 他消息,所以程序看起来好像暂时死机。 3)GetTickCount 函数 在主程序中延时,为了达到延时和响应消息这两个目的,GetTickCount()构成的循环就是一种 广为流传的方法。例如: procedure Delay(MSecs: Longint); //延时函数,MSecs 单位为毫秒(千分之 1 秒) var

FirstTickCount, Now: Longint; begin FirstTickCount := GetTickCount(); repeat Application.ProcessMessages; Now := GetTickCount(); until (Now - FirstTickCount >= MSecs) or (Now < FirstTickCount); end;


相关文章:
BCB时间和日期函数Delphi
BCB时间和日期函数Delphi_IT/计算机_专业资料。BCB时间和日期函数(Delphi) 函数都是delphi的,但是delphi和c++builder差不多,help里找找就行了: function Format...
BCB编程过程中的各种问题集锦
BCB编程过程中的各种问题集锦_计算机软件及应用_IT/计算机_专业资料。C++需要掌握...编写消息处理函数的实现代码 九:INI 文件的使用 TINIFILE *FileIni; FileIni=...
BCB编程过程中的各种问题集锦
6. Dialog 选项卡中 OpenDialog, SaveDialog(ColorDialog) 菜单程序要用到的...所有 BCB 自带的头文件都用“<>”,自己的文件要用双引号 11、 C++常用的有...
在BCB中操作ini文件
BCB中操作ini文件_信息与通信_工程科技_专业资料。ini文件 bcb C++ ...{read=FRootKey, write=SetRootKey, nodefault}; 这个属性用来设置和取得当前...
BCB 6中开发Office(主要是Excel)程序的心得
我现在的习惯是,如果我要在 BCB 中实现一个功能,但是却不知 道相应的方法和参数, 我就会打开 Excel, 在随便一个 Sheet 中用宏记录下我要进行的操作, 然后...
BCB2010中DLL的新建和调用
在线互动式文档分享平台,在这里,您可以和千万网友分享自己手中的文档,全文阅读其他用户的文档,同时,也可以利用分享文档获取的积分下载文档
bcb3
在右行或左行过程中,按一下停止按钮 SB3,小车停止运行。系统设置右行启 动...以此类推,直到 TIM005 工作, 经 3 秒延时, 其常闭接点 TIM005 OFF.这常闭...
BCB中使用VCL控件数组
如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 BCB中使用VCL控件数组 隐藏>> 我的《BCB 中使用 VCL 控件 控件数组》...
通过门诊患者流量分析促进门诊精细化管理201607
swymzbcbh163.com 口腔门诊 耳鼻喉科门诊 妇产科...足够的医生应诊,就诊病人处置不完不下班,药房延时 ...从我院门诊就诊人数的统计中看出,全院就诊人数最多...
煤炭科学研究总院B7C0B3BEBCBCCAF5BCB0B2FAC6B7BCF2BDE9
煤炭科学研究总院B7C0B3BEBCBCCAF5BCB0B2FAC6B7BCF2BDE9_能源/化工_工程科技...(如设定为 50mg/m ) 开喷雾降尘装置,通过设置延时,实现对风流煤尘浓度超限时...
更多相关标签: