AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Freigabe des Bitmap Handles trotz Freigabe der TBitmap ?
Thema durchsuchen
Ansicht
Themen-Optionen

Freigabe des Bitmap Handles trotz Freigabe der TBitmap ?

Ein Thema von Thebe · begonnen am 12. Apr 2005 · letzter Beitrag vom 12. Apr 2005
Antwort Antwort
Thebe

Registriert seit: 25. Jul 2004
Ort: Wedel
78 Beiträge
 
Delphi 6 Enterprise
 
#1

Freigabe des Bitmap Handles trotz Freigabe der TBitmap ?

  Alt 12. Apr 2005, 15:23
Moin moin

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. Was meint ihr dazu ?? Und wenn ja, kann ich das Handle killen BEVOR ich die Bitmap wieder freigebe via

Delphi-Quellcode:
try
    [...]
finally
    DeleteObject(BMP.Handle);
    BMP.Free;
end;
Oder muss ich das Handle zwangsweise rückspeichern weil das Killen des Handles während es in Benutzung is auch das Bitmap verschießen würde ?

Vielen Dank schon mal im Vorraus

- Thebe
  Mit Zitat antworten Zitat
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
Thebe

Registriert seit: 25. Jul 2004
Ort: Wedel
78 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Freigabe des Bitmap Handles trotz Freigabe der TBitmap ?

  Alt 12. Apr 2005, 18:14
Sauber, genau das wollt ich wissen. Danke schön.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz