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編譯環境下測試通過。
相關文章
- OSS實現檔案下載進度條顯示
- 【CLI】使用 Curl 下載檔案實時進度條顯示
- Python展示檔案下載進度條Python
- Retrofit2.0使用——帶進度下載檔案
- Java 從指定URL下載檔案並儲存到指定目錄Java
- 直播平臺開發,載入網頁、html檔案顯示載入進度網頁HTML
- 帶進度條複製檔案代替copyfile
- LVGL高效顯示進度條
- 【macOS】顯示/隱藏 指定檔案Mac
- 直播平臺製作,Glide載入網路圖,進度條顯示IDE
- 檔案下載(URL,文件流)
- 直播系統開發,實現在進度條中顯示文字顯示進度
- 實現一個協程帶進度條下載器
- Python擴充套件包的非官方Windows二進位制檔案下載網址Python套件Windows
- a標籤與Blob下載檔案的區別和獲取檔案下載進度
- guzzlehttp/guzzle 配合 symfony/console 命令列中實現檔案下載進度條HTTP命令列
- vue/js實現檔案流下載,檔案下載進度監聽VueJS
- Android多執行緒+單執行緒+斷點續傳+進度條顯示下載Android執行緒斷點
- Android下載檔案(一)下載進度&斷點續傳Android斷點
- uni-app中安卓包檢查更新、新版本下載、下載進度條顯示功能實現APP安卓
- bat檔案進度條程式碼BAT
- 記錄個簡單的進度條同步顯示方法
- 進度條和列表形式顯示的控制元件控制元件
- 檢查 http url 下載檔案的大小(qbit)HTTP
- Asp.net C# 檔案下載,附件下載程式碼案例,不顯示檔案路徑ASP.NETC#
- url.cn短網址 url.cn短網址網址縮短教程
- 直播平臺軟體開發,讓原本沒有進度條的頁面顯示進度條
- 讀取檔案大小-列印進度條
- docker 怎麼下載指定版本的映象檔案Docker
- 複習Linux如何顯示檔案指定行數的內容Linux
- HttpWebChilent上傳與下載進度條HTTPWeb
- 直播app系統原始碼,固定速度的進度條顯示APP原始碼
- vue專案下載檔案,重新命名,監測進度。Vue
- IDM下載度盤檔案
- QQ 群檔案下載後過期時間顯示 undefinedUndefined
- 短視訊商城系統,Android進度條,自定義進度條,顯示百分比Android
- 網址(URL)的詳細解析
- pyqt5的下載進度條 實現模板QT
- 前端利用Blob物件建立指定檔案並下載前端物件