Haber lo que te ha dado dark dide no es el componente wininet, sino que utiliza wininet para descargar el archivo.Con wininet puedes hacer mas cosas desde FTP, etc... el componente se llama si no recuerdo mal idhttpfile.Pero me parece que si tienes delphi 6 en adelante te dara problemas con designintf y todo el follon este.Pero se puede solventar.
Con esta tienes una manera.
Otra es:
Código:
function Tform1.GetInetFile
(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),
nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer,
SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;
procedure TForm1.Button1Click(Sender: TObject);
var FileOnNet, LocalFileName: string;
begin
FileOnNet:='http://www.clubdelphi.com/';
LocalFileName:='c:\archivo.htm';
if GetInetFile(FileOnNet,LocalFileName)=True then
ShowMessage('Descargado Correctamente')
else
ShowMessage('Error en la Descarga')
end;
Y una tercera es la que te ha dicho el compañero jachguate con las indy con el componente TidHTTPClient.
Ejemplo.
Código:
procedure TForm1.Button2Click(Sender: TObject);
var
stream: Tfilestream;
begin
stream:= TFileStream.Create('c:\archivo.htm',fmCreate);
try
idhttp1.Get('http://www.clubdelphi.com/',stream);
except
stream.Free;
ShowMessage('Error en la Descarga');
exit;
end;
stream.Free;
ShowMessage('Descargado Correctamente')
end;
Las uses que necesites en cada caso no te las se decir ahora porque no me acuerdo.
Pero pueden ser las de las indy en su caso y wininet en los otros
Saludos y Suerte