zoukankan      html  css  js  c++  java
  • DELPHI 中的Delay函数,利用GetTickCount和Application.ProcessMessages构建

     
    作者 关劲松
     
            delphi 开发中有些时候需要停留片刻,等待界面输入,或异步操作完成,如果使用sleep函数的话,整个程序都会停顿,界面还会出现冻结的情况。因此需要自行编写一个delay函数,以毫秒为单位控制等待时间。
            函数功能:GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。
            Application.ProcessMessages; 主要作用使程序在运行时能够响应外界事件。
      利用以上两个函数,我们就可以编写出以毫秒为计数单位,好用的delay函数了。在指定时间内,等待异步事件的完成,如串口通信、网口通信、数据库查询返回等操作。
    procedure Delay(msecs:integer);  
      
    procedure TForm1.Delay(msecs:integer);  
    var  
    Tick: DWord;  
    Event: THandle;  
    begin  
    Event := CreateEvent(nil, False, False, nil);  
    try  
        Tick := GetTickcount + DWord(msecs); 

    while (msecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, msecs, QS_ALLINPUT) <> WAIT_TIMEOUT) do begin Application.ProcessMessages; msecs := Tick - GetTickcount; end;finally CloseHandle(Event);

    end;

    end;
  • 相关阅读:
    104. 二叉树的最大深度
    1120. 子树的最大平均值
    1121. 将数组分成几个递增序列
    1118. 一月有多少天
    1110. 删点成林
    102. 二叉树的层次遍历
    145. 二叉树的后序遍历
    94. 二叉树的中序遍历
    144. 二叉树的前序遍历
    剑指offer-0x04
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/5230035.html
Copyright © 2011-2022 走看看