日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Delphi下载指定网址(URL)的文件,带进度条显示

發布時間:2025/3/15 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi下载指定网址(URL)的文件,带进度条显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要使用的是Delphi自帶的TIdhttp控件。

一、界面設置

在窗體上放置兩個TEdit控件,一個用于輸入要下載的文件URL,一個用于輸入要保存到本地的文件路徑;放置兩個TLabel控件,一個顯示文件總大小,一個顯示當前已下載大小;放置一個按鈕TButton,一個TIdhttp控件(在Indy Clients面板)和一個TIdAntiFreeze控件(放置該控件可避免下載過程中程序無響應,在Indy Misc面板)。

二、主要代碼

//1. 字節數轉換為KB或MB字符串
function?BytesToStr(iBytes: Integer): String;
var
? iKb: Integer;
begin
? iKb := Round(iBytes / 1024);
? if iKb > 1000 then
??? Result := Format('%.2f MB', [iKb / 1024])
? else
??? Result := Format('%d KB', [iKb]);
end;

//2.? Idhttp1控件的OnWorkBegin事件代碼,用于獲取文件總大小
procedure?TForm1.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
? const AWorkCountMax: Integer);
begin
? ProgressBar1.Max := aWorkCountMax;
? Label2.Caption := BytesToStr(iWorkCountMax);
? Update;
end;

//3. Idhttp1控件的OnWork事件響應代碼,用于更新文件下載進度
procedure?TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
? const AWorkCount: Integer);
begin
? Label1.Caption := BytesToStr(aWorkCount);
? ProgressBar1.Position := aWorkCount;
? Update;
end;

//4. 按鈕Button1的點擊事件代碼
procedure?TForm1.Button1Click(Sender: TObject);
var?

? tStream: TMemoryStream;
begin
? tStream := TMemoryStream.Create;
??try
??? IdHTTP1.Get(Edit1.Text, tStream);?//保存到內存流
??? tStream.SaveToFile(Edit2.Text);?//保存為文件
????ShowMessage('下載成功!');

??except
??? ShowMessage('下載失敗!');
??end;
? tStream.Free;
??end;

以上代碼在Delphi7編譯環境下測試通過。

總結

以上是生活随笔為你收集整理的Delphi下载指定网址(URL)的文件,带进度条显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。