WinHTTP bileşenini kullanabilirsin

Örnek vermek gerekirse:

procedure TForm1.Button1Click(Sender: TObject);
begin
winhttp1.URL := 'http://d41d.f.aclst.com/dl.php/d4aPLGrBFvQ/Ferdi%20Tayfur--Neyleyim%20Sen%20Yoksan%20E%C4%9Fer.mp3';
winhttp1.read;
end;

//Progressbar'da dosyanın indirilme durumunu göster(%?)
procedure TForm1.WinHTTP1Progress(Sender: TObject;
  const ContentType: String; DataSize, BytesRead, ElapsedTime,
  EstimatedTimeLeft: Integer; PercentsDone: Byte; TransferRate: Single;
  Stream: TStream);
begin
progressbar1.Position := percentsdone;
end;

procedure TForm1.WinHTTP1Done(Sender: TObject; const ContentType: String;
  FileSize: Integer; Stream: TStream);
  var fs:TFileStream;
begin
try
fs := TFileStream.Create('C:\xx.mp3',fmCreate);
fs.CopyFrom(stream,stream.size);
finally
fs.free;
end;
end;