Zitat von
Thebe:
Ich arbeite gerade stark mit Bitmaps die per Res Dateien mit in die EXE kompiliert werden und da fällt mir bei
LoadBitmap auf, das man die von LoadBitmap zurückgegebenen Handles wieder löschen muss via
DeleteObject.
Nur frage ich mich nun, muss ich um
wirklich sauber zu sein im Punkto Speicherleck, das in der folgenden Situation benutzen ??
Delphi-Quellcode:
try
BMP := TBitmap.Create;
BMP.Handle := LoadBitmap(HInstance, 'IrgendEineBMP');
BMP.TuIrgendwas;
[...]
finally
BMP.Free;
end;
Ich bin stark der Meinung ich müßte in diesem Falle das
Handle nicht killen, lasse mich aber gerne berichtigen.
Du brauchst & darfst das
Handle nicht explizit freigeben.
Das
Handle wird in einem
TBitmapImage gespeichert und in TBitmapImage.FreeHandle wieder freigegeben.
Mit der Zeile
BMP.Handle := LoadBitmap(HInstance, 'IrgendEineBMP');
hast du die Verantwortung für das
Handle an das Objekt BMP abgetreten.