Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TFileStream.Free gibt Datei nicht frei?

  Alt 9. Mai 2006, 14:14
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
  Mit Zitat antworten Zitat