在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
下面是代码片段:
1 ..
2 3 private 4 function DownloadFile(SourceFile, DestFile: string): Boolean; 5 procedure URL_OnDownloadProgress(Sender: TDownLoadURL; 6 Progress, ProgressMax: Cardinal; 7 StatusCode: TURLDownloadStatus; 8 StatusText: String; var Cancel: Boolean) ; 9 { Private declarations } 10 11 . 12 13 function TFrameChannel.DownloadFile(SourceFile, DestFile: string): Boolean; 14 var 15 hasError: boolean; 16 begin 17 hasError:=false; 18 with TDownloadURL.Create(self) do 19 try 20 URL:=SourceFile; 21 FileName := DestFile; 22 OnDownloadProgress := URL_OnDownloadProgress; 23 ExecuteTarget(nil) ; 24 except on e: Exception do begin 25 FormMain.SetStatusInfo(e.Message); 26 Free; 27 hasError:=true; 28 end; 29 end; 30 Result := not hasError; 31 end; 32 33 procedure TFrameChannel.URL_OnDownloadProgress; 34 begin 35 Application.ProcessMessages; 36 end; 37 38 调用时: 39 ofname:='http://www.aaa.com/1.jpg'; 40 nfname:='images\1.jpg'; 41 if not DownloadFile(ofname, nfname) then 42 showMessage('Error') 43 end 44 showMessage('OK'); 45 注:以上程序在大文件下载过程不会死锁,而且你可以在URL_OnDownloadProgress函数中用参数来处理自已的进度条以显示下载进度。因为我的程序不需要,所以没有写出来。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论