ProgressBar.Show;
  while ProgressBar.Visible do
  begin
    ProgressBar.StepIt;
    Application.ProcessMessages;
    if ProgressBar.Position >= ProgressBar.Max then
      ProgressBar.Visible := False;
  end;

解决方案 »

  1.   

    应该设置ProgressBar的Max, Min, Step 属性,如:
    var
      F: File;
      MyData: array[1..2048] of byte;
      BytesRead: LongInt;
    begin
      AssignFile(F, FName);
      try
        Reset(F);
        ProgressBar1.Max := FileSize(F);
        if (ProgressBar1.Max > 10) then
          // amount to move when StepIt method called
          ProgressBar1.Step := ProgressBar1.Max div 10
        else
          ProgressBar1.Step := ProgressBar1.Max;
        while (ProgressBar1.Position < ProgressBar1.Max) do    begin
          // read one Step size chunk of data to buffer
          BlockRead(F, MyData, ProgressBar1.Step, BytesRead);
          // move the ProgressBar Position using StepIt
          ProgressBar1.StepIt; // move by Step amount
        end;
      finally;
        CloseFile(F);
      end;
    end;
      

  2.   

    我是使用ProgressBar的缺省Max, Min, Step 
      object ProgressBar: TProgressBar
        Left = 0
        Top = 438
        Width = 301
        Height = 22
        Min = 0
        Max = 100
        Step = 1
        TabOrder = 5
        Visible = False
      end
      

  3.   

    genphone_ru(票票),ProgressBar.StepIt,其实可以一直增加的,当position>max 时,Position=0,你们可以测试一下
      

  4.   

    还可以这样的:先设置max,min,step!
     然后用这个语:progressbar1.position:=progressbar1.position+n;
      其中的N为进度条的进度值前进量,在程序中要先设置或自动计算细分每次前进的量,保证运行正确!
      

  5.   

    其实我是想progressbar不断循环增值达到Tanimate的效果
      

  6.   

    genphone_ru(票票):你的代码我测试了,当SQL语句没有执行时,你的进度条就消失了
      

  7.   

    先可以这样:
    先设置min,max,后用以下语句:
    ProgressBar1.Position:=ProgressBar1.Position+N;
    N为前进量!
    试试看!
      

  8.   

    gzyzljk(正龙剑客):我的执行语句只有一条:
      Backup Database .....
    但时执行语句中,并没有像以下类似
     procedure DataSetFetchProgress(DataSet: TCustomADODataSet; Progress,MaxProgress: Integer; var EventStatus: TEventStatus);事件函数能够加入代码:
    ProgressBar1.Position:=ProgressBar1.Position+N;
      

  9.   

    以前在DFW上见到过.由于delphi没有提供PB中retrieverow类似的功能,因此要模拟出读取数据的进度几乎是不可能的.
      

  10.   

    其实我并不想retrieverow与进度条有任何逻辑关联,只要进度条和Tanimate一样能够自顾自的动起来就可以了,难道真的没有高手吗?