那就自己加一个判断if ProgressMax<>0 then
  //正常
else
  //显示100%
end;

解决方案 »

  1.   

    procedure TMainForm.ProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
    begin
     try
       StatusBar.Panels[1].Text:=IntToStr((Progress * 100) div    ProgressMax);
     except
       StatusBar.Panels[1].Text:=100;
     end
    end;
      

  2.   

    procedure TMainForm.ProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
    begin
     try
       StatusBar.Panels[1].Text:=IntToStr((Progress * 100) div    ProgressMax);
     except
       StatusBar.Panels[1].Text:='100%';
     end
    end;
      

  3.   

    那就自己加一个判断if ProgressMax<>0 then
    begin
    try
       StatusBar.Panels[1].Text:=IntToStr((Progress * 100) div    ProgressMax);
     except
       StatusBar.Panels[1].Text:='100%';
     end
    end;
      

  4.   

    之前加个变量,控制是否刚开始传输
    bBeginTran := true;
    procedure TMainForm.ProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
    begin
      if ProgressMax<>0 then begin
        bBeginTran := false;
        StatusBar.Panels[1].Text:=IntToStr((Progress * 100) div ProgressMax);
      end else if not bBeginTran then begin
        StatusBar.Panels[1].Text:='100%';
      end;
    end;