0
我想從我的TIdHTTP組件顯示POST調用的進度。IdHTTP.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;
然而,當我調試這個,我的土地2次在.Max = AWorkCountMax;
線,並在第一時間值是65,而第2次值爲0
我知道這可能不是因爲它需要很長時間,但所有這些都取決於返回多少數據,這可能需要很長時間。
這並沒有做到這一點:( – Jeff
嗯,我想這是因爲它無法確定實際尺寸,因爲輸出是動態創建的.. – Jeff
這是正確的。當AWorkCountMax是零時Indy事先並不知道預計會有多少數據。在HTTP中,這通常意味着服務器正在以塊的形式發送答覆數據(答覆中包含一個「Transfer-Encoding:chunked」頭文件)。當「AWorkCountMax」爲零時,您應該使用不同的UI來顯示「AWorkCount」的實際值,它是迄今爲止傳輸的總字節數。 –