新建一个工程,放上一个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; |