在我的程序中要处理一个作业用很长时间,但是完成   
  时间与进度无法计算或估算,我想用一个进度条显示作业正在进行中,能够来回的从左走到右再从右走到左,最好还带有渐进色

解决方案 »

  1.   

    最好你自己做一个gif图片
    或者做好flash使用flash空间来载入
      

  2.   

    用TRxGIFAnimator来显示gif的图像
    TProgressBar来显示进度
      

  3.   

    在执行过程中gif根本不会动,
      

  4.   

    是不是你在主线程里执行操作阿。是的话主线程死锁了。GIF  就不会动了。而且点击了会假死。放到线程中去?我也不是很会DELPHI。
      

  5.   

    顶8楼的
    不想增加线程的话,可以在你耗费大量CPU运算的代码中加入
    Application.ProcessMessages;
      

  6.   

    调用的是远程的一个webservice函数,无法加入Application.ProcessMessages;
    等远程的webservice函数执行了程序也就可以了,所以你们说的这些还是不行的
      

  7.   

    有个控件,就有这个属性的。好像叫做什么Colorstatus我记得。用过一次。
      

  8.   

    给你找到了,是TDFSStatusBar
    你去下载吧。
    结贴,给分,呵呵。
      

  9.   

    把webservice放进线程里啊。这样界面不会假死。
      

  10.   


    我需要有源码的控件,更不能有第三方dll,谢谢你的热心
      

  11.   

    AnimateGuage是什么东西?我是delphi环境,在google都搜索不到哟
      

  12.   

    这是一个大慨的结构,网上有很多,自己可以去找找: 
     TExe_ProThread = class(TThread) 
      private 
        OwnerForm: TAccForm; 
        FException: Exception; 
        ProSucc:Boolean; 
        ProSta:string; 
        procedure DoExe_Pro; 
        procedure DoHandleException; 
        procedure ThreadDone(Sender: TObject); 
      protected 
        procedure Execute; override; 
        procedure HandleException; 
      public 
        constructor Create(Owner: TAccForm;FLAG:String); 
      end; constructor TExe_ProThread.Create(Owner: TAccForm;FLAG:String); 
    begin 
      OwnerForm:=Owner; 
      ProSta := FLAG; 
      inherited Create(True); 
      FreeOnTerminate := True; 
      Priority :=tpNormal; 
    end; 
    procedure TExe_ProThread.Execute; 
    begin 
      FException := nil; 
      ProSucc := False; 
      inherited; 
      if Terminated then Exit; 
      try 
        DoExe_Pro; 
      except 
        ProSucc := False; 
        HandleException; 
      end; 
    end; 
    procedure TExe_ProThread.DoExe_Pro; 
    begin 
      .... 
    end; 
    procedure TExe_ProThread.DoHandleException; 
    begin 
      .... 
    end; 
    procedure TExe_ProThread.HandleException; 
    begin 
      inherited; 
      ..... 
    end; 
    ...
      

  13.   

    我给你解决吧
    用TGradProgress;控件,你果你没有的话,我可以发给你!
    有色渐变,相当好看!
    如果要它来回跑的话,当Position=100时,再让Position-1直到Position等0!这样就可以了!
      

  14.   

    谢谢,我没有这个控件,邮箱: [email protected]
       D2007能用吗? 有源码?
      

  15.   

    你要它从打开程序时开始跑,跑到你关闭程序时再结束都行!管它什么等待不等待的!晚上开始跑到天亮也行!
    用一个time让它跑,能跑一辈子
      

  16.   

    我就是在timer里使用 gpb.Stepit; 可他没有动
      

  17.   

    如果要它来回跑的话,当Position=100时,再让Position-1直到Position等0!这句代码会写吗?
      

  18.   

    或者直接加一句
    if gpb.Position=100 then Position=0 
    gpb.Stepit;让它重头再来
      

  19.   

    if gpb.Position=100 then 
    Position:=0;
    gpb.Stepit; 
      

  20.   

    问题是这个控件是非线程的,在其他查询执行时,它被暂停了,无法执行如果这样都行的话,delphi自带的就可用,只是这个可能漂亮点我希望的是控件自己有线程功能,启动后自动执行,直到外部停止
      

  21.   

    请问楼主:delphi tgradprogress 控件还在吗? 发给我行吗?. 谢谢....
    你的渐变进度条做好了吗?? 怎么实现的?