本帖最后由 bigbillybear 于 2010-08-05 14:19:46 编辑

解决方案 »

  1.   

    那timer的延时为什么那么段呢,只有一分钟多一点???
      

  2.   

    数据类型不一样的,一个是long,一个是integer,timer控件也可以做很长的延时
      

  3.   


    但是网上说Timer一次延时只有64S大概
      

  4.   

    其实我是对Doevents的使用有疑问,请看下面代码,可以这样使用吗??Private Sub Form_Load()
        Timer1.Interval = 5000
        Timer1.Enabled = False
    End SubPrivate Sub Command2_Click()
        Timer1.Enabled = True
        Do While l < 5
            Timer1.Enabled = True
            DoEvents
        Loop
        l = 0
    End SubPrivate Sub Timer1_Timer()
        Timer1.Enabled = False
        l = l + 1
    End Sub
      

  5.   

    timer控件最大时间间隔无符号整65535毫秒,VB虽然没有无符号整,但定时器是这个值,大约65秒多一点。
      

  6.   

    可以,但你的代码看着不爽:dim l as integer
    Private Sub Form_Load()
      Timer1.Interval = 5000
      Timer1.Enabled = False
    End SubPrivate Sub Command2_Click()
      Timer1.Enabled = True
      Do While l < 5
         DoEvents
      Loop
      Timer1.Enabled = False
      l = 0   
    End SubPrivate Sub Timer1_Timer()
      l = l + 1
    End Sub
      

  7.   


    我想做一个一定时间内的控制权转让,以前都是用timegettime来计算延时,后来发现,机器运行久了,这个函数有问题,由此想到了一些问题,请教一下~~~~
      

  8.   


    那用您给的代码就可以完美代换以下代码了吧???savetime = timeGetTime
    While timeGetTime < savetime + 240000
        DoEvents                        
    Wend
      

  9.   

    API函数:TimeSetEvent可以实现毫秒级定时效果
      

  10.   

    换个思路吧.你自己计时间,两个小时,你是不是把它记成7200秒?长时间延时,那就将时间归整,进位,向大单位保存.比如,你要1000秒,可以用个LONG变量累加,没问题.但如果是1000小时,那就要让保存小时的变量单独出来,然后由下级进位来进行累加.同理,小时不够还有天,天不够还有周,周不够还有月,年.这样的话只要是你能想得出的时间,都是能完成计时的.如果只用一个变量去累加,那肯定总是有限的嘛.
      

  11.   

    反正长延时肯定要求精度不高.除非你想炸死奥巴马-------------那确实需要长延时+高精度....那么....延时结果是给人看的.你是想看到213921348913751298374秒这样的结果,还是XX天XX小时XX分XX秒这样的结果?
      

  12.   


    其实经过我的实验,我贴的程序就可以做长时间延时,说的很对,时间长就不需要精确重点是,我在延时中,要转让控制权,就是加上Doevents,这个是重点。如果11L给出的程序和我在14楼里说得程序等效就OK了,除了长时间运行会错误外,我对我14楼写得程序还是很满意的,呵呵~~~~
      

  13.   

    http://files.cnblogs.com/pctgl/%e5%a2%9e%e5%bc%ba%e7%89%88%e6%9c%ac.rar用这个timer类, 可以实现一个多月的间隔... 要不就是20多天,我也忘了具体长度了,反正应该足够你用了
      

  14.   

    你对误差要求很低的话,用timer控件不也可以延时很长时间吗,想要多久就可以多久,只要做个计数器,每次触发timer事件时加1就可以。
      

  15.   

    SLEEP
    长整型,应该有好几天了吧.