在进行数据处理的时候,显示一个FORM,FORM中有LABEL和PROGRESSBAR,程序如下:
procedure TfrConsumerSeach.btnSeachClick(Sender: TObject);
var
  frmProgress: TfrmProgress;
begin
...
if not CenterDatabase.EndOfQuery then
    begin
        iRecordCount:=CenterDatabase.ReordCount;
        SetLength(CusRecord,iRecordCount);
        Screen.Cursor :=crHourGlass;
        frmProgress:=TfrmProgress.Create(self);
        frmProgress.ProBar.Percent:=0;
        frmProgress.Show;
        frmProgress.Update;
        for i:=0 to CenterDatabase.ReordCount-1 do
        begin
           ...
            frmProgress.ProBar.Percent:=(i div iRecordCount) * 100;
            frmProgress.Update;
            frmProgress.Repaint;
            Application.ProcessMessages;            CenterDatabase.NextRecord;
            if CenterDatabase.EndOfQuery then Break;
        end;
        frmProgress.Close ;
        Screen.Cursor :=crDefault;
    end;
end;
目前存在的问题是进度条的进度显示始终为0%,而且有进度条的FORM闪烁太严重。请各位高手帮忙啊!

解决方案 »

  1.   

    frmProgress.ProBar.Min=0
    frmProgress.ProBar.Max=100
      

  2.   

    进度条的Step设置大一点例如10
      

  3.   

    for i:=0 to CenterDatabase.ReordCount-1 do
            begin
               ...
                frmProgress.ProBar.Percent:=(i div iRecordCount) * 100;
                frmProgress.Update;
                frmProgress.Repaint;
    改为:
    frmProgress.ProBar.Max := CenterDatabase.ReordCount;
       for i:=0 to CenterDatabase.ReordCount-1 do
            begin
               ...
                frmProgress.ProBar.Position := i + 1;
      

  4.   

    我的blog就有一个进度条窗体..欢迎参观.
      

  5.   

    用guage控件吧
    TGauge = class(TGraphicControl)
    ProgressBar控件是
    TProgressBar = class(TWinControl)
      

  6.   

    首先说明的是:我使用的是RzProgressbar控件,没有要求设置MIN和MAX,也没有STEP。第一次没有说明白,不好意思啊。
    而且窗体闪烁的问题还请各位多多指教
      

  7.   

    用TotalParts和PartsComplete处理
    或者直接用Percent处理都可以
      

  8.   

    frmProgress.ProBar.Percent:=(i * 100) div iRecordCount
      

  9.   

    窗体闪烁...
    Form.DoubleBuffered := True;