IdHTTP.Post - 我没有进度显示在进度条中

时间:2011-07-06 16:38:10

标签: delphi http progress-bar http-post indy

我正在尝试从我的TIdHTTP组件显示POST调用的进度。

procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
ProgressBar1.Position := AWorkCount;
end;

procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
Progressbar1.Max := AWorkCountMax;
end;

然而,当我调试它时,我在.Max = AWorkCountMax;行上着陆了2次,第一次是值65,第二次是0。

我知道这可能没有必要,因为它会花费很长时间,但所有这些都取决于返回的数据量,可能需要很长时间。

1 个答案:

答案 0 :(得分:1)

开始

procedure TForm1.IdHTTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
   if AWorkMode = wmRead then 
   begin
      ProgressBar.Max := AWorkCountMax; 
      ProgressBar.Position := 0; 
   end;
end;

tranfert

procedure TForm1.IdHTTPWork(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
   if AWorkMode=wmRead then 
     ProgressBar.Position := AWorkCount;
end;

procedure TForm1.IdHTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
  ProgressBar.Position := 0;
end;