程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 對“網頁內容查詢控制”主題所得(下載):

對“網頁內容查詢控制”主題所得(下載):

編輯:Delphi
^知道了可以用nmhttp控件下載網頁,可是D7找不到這個控件了。
  ^找到了idhttp控件似乎可以實現相同的功能,可是線上關於其的討論太少
  ^摘錄一點代碼:
   直接采用Delphi自帶的控件的INDY組件為例.新建一個工程,放上一個TIdHTTP控件,一個TIdAntiFreeze控件,一個TProgressBar用於顯示下載進度.最後放上一個TButton用於開始執行我們的命令.代碼如下:
  
  procedure TForm1.Button1Click(Sender: TObject);//點擊按鈕的時候開始下載我們的文件
  var
  MyStream:TMemoryStream;
  begin
  IdAntiFreeze1.OnlyWhenIdle:=False;//設置使程序有反應.
  MyStream:=TMemoryStream.Create;
  try
  IdHTTP1.Get('http://www.138soft.com/download/Mp3ToExe.zip',MyStream);//下載我站點的一個ZIP文件
  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);//開始下載前,將ProgressBar1的最大值設置為需要接收的數據大小.
  begin
  ProgressBar1.Max:=AWorkCountMax;
  ProgressBar1.Min:=0;
  ProgressBar1.Position:=0;
  end;
  
  procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);//接收數據的時候,進度將在ProgressBar1顯示出來.
  begin
  ProgressBar1.Position:=ProgressBar1.Position+AWorkCount;
  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;
    
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved