像一站到底里面的倒计时,从20:00到00:00,想请教一下实现的思路啊具体一点的,刚学delphi不久啊,哪位大神来帮帮忙,谢谢啦~~~

解决方案 »

  1.   

    使用Timer控件,将interval值设为1,这个定时器每一微秒就会触发一次
      

  2.   


    procedure TForm1.FormCreate(Sender: TObject);
    begin
    T := 20.000;
    Timer1.Interval := 1;
    Timer1.Enabled := True;
    end;
    procedure TForm1.Timer1Timer(Sender: TObject);
    var T:single;
    begin
    T := T - 0.001;
    if T =  0.000  then Timer1.Enabled := false;
    end大概是这样吧……
      

  3.   

    timer控件的精度50就几乎极限了,50以下误差就拉大了,想得到1毫秒精度更是不可能。
      

  4.   

    居然是说微秒。 
    DelphiX组件有一个高速timer,可以直接把interval设为0俺就撸过,啥也不说
      

  5.   

    这个计时……是倒数20分钟吗?这样的话就应该是设置60秒一个周期……
    T :=  60.000;
    Min := 20;//整形
    在Timer1Timer事件中
    是 
    T :=  T - 0.001;
    if T := 0.000 then
    begin
      T := 60.000;
      Min := Min - 1;
    en;;
    还有如果按楼上sololie所说,不无道理,实际上要那么大的精度也没用
      

  6.   

    那要怎样显示呢?我试了一下single后面是好多位,而且中间的:也不知道怎么弄,
      

  7.   

    倒数二十秒……有这种Second:MicroSecond的表示方法吗?
      

  8.   

    这种方法我试过,在20秒倒计时到毫秒精度的时候sec-1就会非常卡顿!根本达不到效果
      

  9.   

    不卡才怪呢……把CPU时间都占了
      

  10.   

    哈哈,毫秒,0.01的精度就够了啊,关键是sec-1的时候会卡
      

  11.   

    显示器每秒才刷新60Hz(常见LCD),你在显示方面根本不需要每循环一次就更新一次UI。可以用QueryPerformanceFrequency和QueryPerformanceCounter结合,使用的是CPU的tick计数,肯定能达到你的精度要求。用这两个API实现高精度定时,设置一个全局变量,保存流逝的时间,放在一个单独的线程中,并将线程固定在CPU的一个核心上。在主线程中用普通的Timer定时读取这个全局变量,计算后更新UI即可!
      

  12.   

    可不可以给个大概的代码啊?新人不会控制线程啊,不是很懂,万分感谢!Delphi中好像是有TThread类吧,上学时候用过delphi,现在工作都忘了。你搜一下吧! 我只是提供个思路,你可以在网上找找这两个API的资料和用法。
      

  13.   

    毫秒是1000帧,微妙就1000000帧了!!
    其实我想做的是百分之一秒。。
    汗,那就是10ms,要这么复杂干啥![qoute=引用 msdn:]
    操作系统提供了几个精度不同的计时器:
    Function                 Units                      Resolution
    ---------------------------------------------------------------------------
    Now, Time, Timer         seconds                    1 second
    GetTickCount             milliseconds               approx. 10 ms
    TimeGetTime              milliseconds               approx. 10 ms
    QueryPerformanceCounter  QueryPerformanceFrequency  same
    [/qoute]
      

  14.   

    GetTickCount和TimeGetTime能达到你的要求http://support.microsoft.com/kb/172338
      

  15.   

    在xp下timer精度一般是1/64秒。