提示一个SQL或下载程序的时候,我想用一个假的进度条,现在想用flash来弄,可是执行的时候flash会停掉,不动了,等运行完了它才接着动,有没有什么办法让它一直动着。谢谢了!

解决方案 »

  1.   

    是不是在执行任务时独占了,flash就不动了。
    可以尝试在适当的位置加入代码:
    doevents
      

  2.   

    有加了doevents,可是还是不能根本解决问题呀,怎么让执行任务时不独占?要多线程吗?怎么让flash自己独立执行。
      

  3.   

    把flash放在一个新的form里面,然后运行开始的时候把这个form show出来,加一个doevents就好了,任务结束把这个form关闭!
      

  4.   

    to pweixing:
    加了一个form,运行的时候show了,可是新的form显示出来的flash还是会停住,等外面运行完了才给我继续执行动画,晕呀!高手帮帮忙呀
      

  5.   

    可能是在主线程的循环里边,不如在开一个线程,发回消息让flash动起来
      

  6.   

    这个新窗口frmLoad中的代码
    '设置加载动画窗口的大小
        Me.Left = Main_Frame.StatusBar1.Left
        Me.Top = Main_Frame.StatusBar1.Top + 300
        Me.Width = Main_Frame.StatusBar1.Width
        Me.Height = Main_Frame.StatusBar1.Height
        ProGressFlash.Left = 0
        ProGressFlash.Top = 0
        ProGressFlash.Width = Me.Width
        ProGressFlash.Height = Me.Height
        ProGressFlash.LoadMovie 0, App.Path & "\test.swf" '加载进度条
    这是主程序调用的代码:
    Sub Command21_Click()frmLoad.Show vbModel, Me
    DoEvents中间执行操作,可能占用的时间会比较久,查SQL操作,文件操作Unload frmLoadEnd Sub
      

  7.   

    frmLoad.Show vbModel, Me
    这样的话,只有在frmload窗体关闭后才会执行后面的代码吧,建议show frmload时不要用模式方式。
    doevents应该加在"中间执行操作,可能占用的时间会比较久,查SQL操作,文件操作"之间
      

  8.   

    不用vbModel还是一样的,只要一执行到那个SQL语句就会停住,那个SQL查询操作比较大,运行时间也比较长。doevents也只能是动一次。哎
      

  9.   

    主的执行操作是个循环结构体,就可以把doevents加入到循环体。
    如果不是循环体,比较麻烦
    尽量把单个处理分散成多个小的。这样就可以方便处理了
      

  10.   

    不是循环体呀!所以才郁闷呀!要不然多几个doevents也是凑合着的,可是其他的都很快,就是运行查询的那句SQL要花费好几秒,比较慢,要查询50年的记录:)呵呵!还有没有好的办法呀?
      

  11.   

    access数据库,我刚才小试了用多线程的控制,可是运行提示内存读错误,我不知道要怎么办了!各位都没遇到过这类情况吗?帮我想想办法,在此谢过了!
      

  12.   

    可还有写文件的操作呀,这样不是控制越来越麻烦,哎!试了用timer也是停住的。