IdHTTP.Post - Нет прогресса для отображения на панели прогресса - PullRequest
0 голосов
/ 06 июля 2011

Я пытаюсь отобразить ход вызова POST от моего компонента TIdHTTP.

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;

Однако, когда я отлаживаю это, я приземляюсь 2 раза в строке .Max = AWorkCountMax;, и в первый раззначение равно 65, и во 2-й раз значение равно 0.

Я знаю, что в этом нет необходимости, поскольку это занимает много времени, но все, в зависимости от того, сколько данных возвращается, может занять много времени.

1 Ответ

1 голос
/ 06 июля 2011

1001 * начать *

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;
...