Einzelnen Beitrag anzeigen

Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#1

Memory Leak nach Zuweisung eines Resourcestream

  Alt 4. Jun 2022, 11:32
Hallo,

ich hoffe in dieser Rubrik richtig zu sein.

Meine Frage gilt folgender Zuweisung und anschließendem Memory Leak:
Delphi-Quellcode:
procedure TFormViewFinMathZins.FormCreate(Sender: TObject);
begin
  Image1.Bitmap.LoadFromStream(TResourceStream.Create(HInstance, 'EWoZZ', RT_RCDATA));
end;
Nach Beendigung des Programms bekomme ich beigefügte Meldung über unerwartete (schwarze) Löcher im Speicher. Das leuchtet mir schon ein, aber wie bekomme ich das Loch gestopft?

Wähle ich folgende Variante:
Delphi-Quellcode:
procedure TFormViewFinMathZins.FormCreate(Sender: TObject);
var
  Stream: TStream;
begin
  Stream:= TResourceStream.Create(HInstance, 'EWoZZ', RT_RCDATA);
  Image1.Bitmap.LoadFromStream(stream);
  FreeAndNil(stream)
end;
habe ich logischerweise das Problem nicht.
Meine Frage: Ist es möglich bei der ersteren (eleganteren) Variante die Ressource zu beenden?

Vielen Dank für eure Mühe und
viele Grüße Peter
Miniaturansicht angehängter Grafiken
memoryleak.png  
Peter Niemeier
  Mit Zitat antworten Zitat