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”的实际值,它是迄今为止传输的总字节数。 –