getTickCount()返回windows启动以来的毫秒数
mysleep(10)就是延时10毫秒

解决方案 »

  1.   

    1.getTickCoun()返回计算机启动以来的时间数
    2.MySleep是一个让程序暂停一段时间,mySleep(1000)暂停一秒,这个函数比sleep函数要好很多,不会耗很多的系统资源,同时不会让系统暂停,而让其它程序很好的处理
      

  2.   

    OK,说的对,通过Application.ProcessMessages响应其他消息,你如果
    在主线程用SLEEP()就没办法响应其他请求了了,而用MYSLEEP可以。
      

  3.   

    time1 := getTickCount;
      time2 := time1;
     不明白,这样的效果不是,time1和time1相等了吗
    那还要
    while (time2-time1)<TimeLen  do
      有什么用处?
      

  4.   

    GETTICKCOUNT这个东西一直在变,要比timer2早一个时间周期。如果由于某种原因,两个时间不相等(time2-time1)<TimeLen,就相应其它消息,强制时间相等
    time2 := GetTickCount;
      

  5.   

    gettickcount返回计算机启动的时间的,你的MySleep(TimeLen:integer);
    函数是延时的函数。其中Application.ProcessMessages可防止进程不响应消息。一般在串口上一定要延时才行。因为串口设备在两条信号之间会有一段反应时间。不然就会出现混乱。
      

  6.   

    看清楚:
    再程序里面还有一个“time2 := GetTickCount”这个程序的作用是用来延时的。MySleep(10)表示程序延时10个毫秒。因为串口通信的速度比较慢,就算采用19200的波特率,也远远跟不上程序执行的速度,所以,必须通过延时来达到控制时序的问题。保证程序和串行口的通讯保持同步。作为程序的循环来说,当time2>time1时,退出循环,延时结束。
      

  7.   

    getTickCoun()主要返回计算机内部多媒体时钟的结果,比一般的时间函数都精密和准确,一般用于对时间精密度要求比较高的地方!