bcb中实现延时

上传人:第*** 文档编号:38742683 上传时间:2018-05-07 格式:DOC 页数:2 大小:24KB
返回 下载 相关 举报
bcb中实现延时_第1页
第1页 / 共2页
bcb中实现延时_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《bcb中实现延时》由会员分享,可在线阅读,更多相关《bcb中实现延时(2页珍藏版)》请在金锄头文库上搜索。

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

2、unt( )函数相减得到时钟数,void delay(unsigned int n); / 延长 n 毫秒 int t0=GetTickCount( ); while (GetTickCount()-t0ProcessMessages(); / 响应消息 本文主要介绍了分别用 TTtimer 控件,Sleep 函数,GetTickCount 函数来实现延时的方法:1)TTtimer 控件TTtimer 控件的实质是调用 Windows API 定时函数 SetTimer 和 KillTimer 来实现的,并简化了对 WM_TIMER 消息的处理过程。通过设置 OnTimer 事件和 Inter

3、val 属性,我们可以很方便的产生一些简单的定时事件。2)Sleep 函数Sleep 函数用来使程序的执行延时给定的时间值。Sleep 的调用形式为 Sleep(milliseconds),暂停当前的进程 milliseconds 毫秒。Sleep 的实现方法其实也是调用 Windows API 的 Sleep 函数。例如:sleep(1000); /延迟 1000 毫秒Sleep 会引起程序停滞,如果你延迟的时间较长的话,你的程序将不能够响应延时期间的发生的其他消息,所以程序看起来好像暂时死机。3)GetTickCount 函数在主程序中延时,为了达到延时和响应消息这两个目的,GetTickCount()构成的循环就是一种广为流传的方法。例如:procedure Delay(MSecs: Longint);/延时函数,MSecs 单位为毫秒(千分之 1 秒)varFirstTickCount, Now: Longint;beginFirstTickCount := GetTickCount();repeatApplication.ProcessMessages;Now := GetTickCount();until (Now - FirstTickCount = MSecs) or (Now FirstTickCount);end;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号