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 下載檔案實時進度條顯示
- ftp下載顯示進度FTP
- Python展示檔案下載進度條Python
- 帶進度條的檔案上傳
- C# 下載帶進度條程式碼(普通進度條)C#
- 上傳檔案帶進度條
- 可愛!帶有數字顯示的載入進度條效果外掛
- Retrofit2.0使用——帶進度下載檔案
- 直播平臺開發,載入網頁、html檔案顯示載入進度網頁HTML
- Java 從指定URL下載檔案並儲存到指定目錄Java
- ajax進度條 非同步下載進度條非同步
- 報表載入大資料時顯示進度條大資料
- 直播平臺製作,Glide載入網路圖,進度條顯示IDE
- 直播系統開發,實現在進度條中顯示文字顯示進度
- 【macOS】顯示/隱藏 指定檔案Mac
- 實現一個協程帶進度條下載器
- 贊!帶進度條的 jQuery 檔案拖放上傳外掛jQuery
- ftp下載指定檔案FTP
- Linux Shell 下載網站指定檔案Linux網站
- uni-app中安卓包檢查更新、新版本下載、下載進度條顯示功能實現APP安卓
- 獲取url網址傳遞的指定引數值
- 檔案下載(URL,文件流)
- 解決下載的CHM檔案無法顯示網頁問題網頁
- 批次顯示指定目錄下的檔案數量的sh指令碼指令碼
- vue/js實現檔案流下載,檔案下載進度監聽VueJS
- bat檔案進度條程式碼BAT
- 進度條和列表形式顯示的控制元件控制元件
- 記錄個簡單的進度條同步顯示方法
- Android多執行緒+單執行緒+斷點續傳+進度條顯示下載Android執行緒斷點
- 基於uploadify.js實現多檔案上傳和上傳進度條的顯示JS
- Python擴充套件包的非官方Windows二進位制檔案下載網址Python套件Windows
- 直播平臺軟體開發,讓原本沒有進度條的頁面顯示進度條
- Android檔案下載之進度檢測Android
- 常見的網頁載入進度條網頁
- Windows系統下,往硬碟裡複製貼上檔案不顯示,也不提示進度條的解決辦法Windows硬碟
- HttpWebChilent上傳與下載進度條HTTPWeb
- Android下載檔案(一)下載進度&斷點續傳Android斷點