我写了一个小程序(c/s)的,由于有一个字段是将图片保存到数据库的,图片大了就会有等待时间,能不能做一个页面放上等待动画,表示数据正在存入数据表,存入完毕后关闭这个页面,怎么做啊?还有就是读取的时候也相同

解决方案 »

  1.   

    ProgressBar1
    用这个控件可以
    ,结合你文件的进度.还有时间的把握,自己看看!`
      

  2.   

    ProgressBar 控件通过在水平条中显示适当数目的矩形来指示进程的进度。进程完成时,进度栏被填满。进度栏通常用于帮助用户了解等待一项长时间的进程(例如,加载大文件)完成所需的时间。ProgressBar 控件的主要属性为 Value、Minimum 和 Maximum。Minimum 和 Maximum 属性设置进度栏可以显示的最大值和最小值。Value 属性表示操作的进度。因为控件中显示的进度条由块构成,所以 ProgressBar 控件显示的值只是约等于 Value 属性的当前值。根据 ProgressBar 控件的大小,Value 属性确定何时显示下一个块。更新当前进度值的最常用方法是编写代码来设置 Value 属性。在加载大文件的例子中,可将最大值设置为以 KB 为单位的文件大小。如果将 Maximum 属性设置为 100,将 Minimum 属性设置为 10,并且将 Value 属性设置为 50,则将显示 5 个矩形(这是可以显示的矩形个数的一半)。但是,除直接设置 Value 属性外,还有其他方法可以修改由 ProgressBar 控件显示的值。Step 属性可以用于指定一个按其递增 Value 属性的值。然后,调用 PerformStep 方法将递增该值。若要更改递增值,您可以使用 Increment 方法并指定一个按其递增 Value 属性的值。这个是主要的属性,你看看吧!我去年些写过一次,但是忘的差不多了.(在开始的时候启动,文件传输完毕完毕!~)
      

  3.   

    我不想用ProgressBar1,只想弹出一个带有等待动画的窗口,只是不知道什么时候弹出,什么时候关闭,请高手们指点!
      

  4.   

    方法A,用当前程序线程1.先做好你要显示的动画窗口 TWaitForm 。
    2.在保存的动作中添加代码。
      var awfrm : TWaitForm;    awfrm := TWaitForm.create(nil);
        try
           awfrm.show;
           .....
           保存代码
           ..... 
        finally
           Freeandnil(awfrm); 
        end;
    方法B.用后台线程做.
       1.在线程运行的代码前加上 
            awfrm := TWaitForm.create(nil);
            awfrm.show;
            athread.Resume; 
       2.在线程结束的事件里关闭。
            Freeandnil(awfrm);        
         
      

  5.   

    万分感谢各位的参与,特别是lenassnake()