There is no difference between TMemoryStream
or TFileStream
from the stream point of view.
They are both streams and hold a stream of bytes and are both derived from TStream
.
You can implement your function generalized like this
function DownloadToStream( const AUrl : String; ADest : TStream ): Boolean;
var
LHttp: TIdHTTP;
begin
LHttp := TIdHTTP.Create;
try
LHttp.Get( AUrl, ADest );
Result := ADest.Size > 0;
finally
LHttp.Free;
end;
end;
and call it with a TFileStream
var
LStream : TStream;
begin
LStream := TFileStream.Create( 'MyFile.exe', fmCreate );
if DownloadToStream( '', LStream ) then
...
end;
or TMemoryStream
or whatever stream instance you like