我正在尝试从我的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。
我知道这可能没有必要,因为它会花费很长时间,但所有这些都取决于返回的数据量,可能需要很长时间。
答案 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;