新建一个工程,放上一个TIdHTTP控件,一个TIdAntiFreeze控件,一个TProgressBar用于显示下载进度。最后放上一个TButton用于开始执行我们的命令。代码如下:
procedure TForm1.Button2Click(Sender: TObject); var MyStream:TMemoryStream; begin IdAntiFreeze1.OnlyWhenIdle:=False;//设置使程序有反应. MyStream:=TMemoryStream.Create; try //下载我站点的一个ZIP文件 IdHTTP1.Get('http://www.138soft.com/download/Mp3ToExe.zip',MyStream); except//INDY控件一般要使用这种try..except结构. Showmessage('网络出错!'); MyStream.Free; Exit; end; MyStream.SaveToFile('c:\Mp3ToExe.zip'); MyStream.Free; Showmessage('OK'); end; procedure TForm1.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); begin ProgressBar1.Max:=AWorkCountMax; ProgressBar1.Min:=0; ProgressBar1.Position:=0; end; |
IdHTTP1的Get还有一种形式就是获取字符串:例如,上面的程序可以改写成:
procedure TForm1.Button1Click(Sender: TObject); var MyStr:String; begin IdAntiFreeze1.OnlyWhenIdle:=False;//设置使程序有反应. try MyStr:=IdHTTP1.Get('http://www.138soft.com/default.htm'); except Showmessage('网络出错!'); Exit; end; Showmessage(MyStr); end; |
本文引用通告地址: http://blog.csdn.net/wlnh_2004/services/trackbacks/272820.aspx
[点击此处收藏本文]
发表于 2005年01月29日 10:58 AM
需要 登录 才可以评价。
billgui 发表于2005-02-03 10:52 AM
你可以用TDownloadURL来下载(需要放到一个thread里以防止界面停止响应),TIdHTTP的进度显示不准。