Ich habe das ganze jetzt so "gelöst":
Delphi-Quellcode:
//....
curr.http.Get(curr.url,TMemoryStream.Create);
//curr.http is TIdHTTP
//....
procedure TFIndyLoader.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
var http: TIdHTTP;
dir:
string;
begin
Beep;
dir := IncludeTrailingPathDelimiter(ELocalDir.Text);
ForceDirectories(dir);
http := Sender
as TIdHTTP;
http.Response.ContentStream.Position := 0;
with TFileStream.Create(dir + downloads[http.Tag].fname,fmCreate)
do
try
CopyFrom(http.Response.ContentStream,http.Response.ContentStream.Size);
finally
Free;
end;
Postmessage(
Handle,WM_FREE,Integer(@http),0);
end;
Is aber eher ein workaround...
Was mich noch wundert: wenn ich im OnWorkEnd gleich Response.ContentStream freigegeben habe, hat er zwar ein paar AVs geworfen, aber die Datei war danach frei...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1