Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Freigabe des Bitmap Handles trotz Freigabe der TBitmap ?

  Alt 12. Apr 2005, 17:31
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 MSDN-Library durchsuchenLoadBitmap auf, das man die von LoadBitmap zurückgegebenen Handles wieder löschen muss via MSDN-Library durchsuchenDeleteObject.

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.
Andreas
  Mit Zitat antworten Zitat