怎么加一個ProgressBar進度條,顯示進度?
function TFrAutoUpdate.DownLoadFile(sURL, sFName: string): boolean;
var
tStream: TMemoryStream;
begin
Result := False;
tStream := TMemoryStream.Create;
try { 防止不可預料錯誤發生 }
sURL := IdHTTP1.URL.URLEncode(sURL); { 下載路徑進行編碼轉換 }
try
IdHTTP1.Get(sURL, tStream); { 保存到記憶體流 }
tStream.SaveToFile(sFName); { 保存為檔案 }
Result := True;
except
end;
finally { 即使發生不可預料的錯誤也可以釋放資源 }
tStream.Free;
end;
end;
uj5u.com熱心網友回復:
IdHTTP 事件OnWork 寫入 pb1.Position := AWorkCountOnWorkBegin 寫入 pb1.Max := AWorkCountMax;
pb1.Position := 0;
就行了
uj5u.com熱心網友回復:
處理3個事件OnWorkBegin AWorkCountMax則為下載的總位元組數
OnWork AWorkCount則為已下載的位元組數
OnWorkEnd 下載結束
進度條最大值設定為100,在OnWorkBegin中記錄總位元組數,在OnWork中用 AWorkCount/總位元組數*100取整后設定給進度條。
uj5u.com熱心網友回復:
進度同樓上..另外,如果只是下載檔案,更簡單可直接呼叫api 函式.UrlDownloadToFile
uj5u.com熱心網友回復:
procedure TUpdatefrm.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);begin
ProgressBar1.Position := ProgressBar1.Max;
end;
procedure TUpdatefrm.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
ProgressBar1.Position := AWorkCount;
end;
procedure TUpdatefrm.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
ProgressBar1.Max := AWorkCountMax;
ProgressBar1.Min := 0;
ProgressBar1.Position := 0;
end;
uj5u.com熱心網友回復:
procedure TfrmMain.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
ProgressBar1.Max:=AWorkCountMax;
ProgressBar1.Min:=0;
ProgressBar1.Position:=0;
end;
procedure TfrmMain.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
ProgressBar1.Position:=ProgressBar1.Position+AWorkCount;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53664.html
標籤:網絡通信/分布式開發
上一篇:delphi呼叫列印機問題
