如下情况,如何设置进度条?
 for i:=0 to 100 do
  begin
  for j:=0 to 145866 do
  begin
  ....
  end;
  for j:=0 to 1756 do
  begin
  ....
  end;
   for j:=0 to 91756 do
  begin
  ....
  end;
 end;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        i,j:integer;
    begin
        ProgressBar1.Min:=0;
        ProgressBar1.Max:=(145866+1756+91756)*100;
        ProgressBar1.Position:=0;
        for i:=0 to 100 do
          begin
          for j:=0 to 145866 do
          begin
            ProgressBar1.Position:=ProgressBar1.Position+1;
            Application.ProcessMessages;
          end;
          for j:=0 to 1756 do
          begin
            ProgressBar1.Position:=ProgressBar1.Position+1;
            Application.ProcessMessages;
          end;
          for j:=0 to 91756 do
          begin
            ProgressBar1.Position:=ProgressBar1.Position+1;
            Application.ProcessMessages;
          end;
        end;
        ProgressBar1.Position:=0;
    end;
      

  2.   


      for j:=0 to 91756 do 
      begin 
        //..do something 
        label.caption := inttostr(j);
        Application.ProcessMessages;
      end; 
      

  3.   

    同意一楼。
    也可以用两个ProgressBar
        ProgressBar1.Min:=0;
        ProgressBar1.Max:=100;
        ProgressBar1.Position:=0;
        ProgressBar2.Min:=0;
        ProgressBar2.Max:=145866+1756+91756;
            
        for i:=0 to 100 do
        begin
          for j:=0 to 145866 do
          begin
            ProgressBar2.Position:=ProgressBar2.Position+1;
          end;
          for j:=0 to 1756 do
          begin
            ProgressBar2.Position:=ProgressBar2.Position+1;
          end;
          for j:=0 to 91756 do
          begin
            ProgressBar2.Position:=ProgressBar2.Position+1;
          end;
          ProgressBar2.Position:=0;
          ProgressBar1.Position:=ProgressBar1.Position+1;
        end;
        ProgressBar1.Position:=0;