![]() |
Freigeben von Bitmap funktioniert nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leute,
ich habe ein Objekt TBildbearbeiter, dass in seinem Constructor ein Bitmap erzeugt. Das Objekt eine Prozedur, in der mit dem erzeugten Bitmap gearbeitet wird, im Destructor wird das Bitmap dann wieder freigegeben. Allerdings bekomme ich an der Stelle immer eine AV. Wenn ich die Zeile auskommentiere geht es.
Delphi-Quellcode:
Ich häng das Programm nochmal an, falls es sich einer nochmal mit Aufruf, etc. angucken will.
TBildbearbeiter = class
hBild : TBitmap; //etc... constructor Create(); begin hBild := TBitmap.Create; end; function SchwarzWeissBild(pBild:TBitmap):TBitmap; begin hBild := pBild; //Das Bitmap wird verändert, Canvas Befehle, etc.... result := hBild; end; destructor Destroy(); begin hBild.destroy; //hier kommt die AV, außer wenn ich auskommentiere, auch free geht nicht end; tia, mfg, gordon :dp: |
Re: Freigeben von Bitmap funktioniert nicht
Zitat:
|
Re: Freigeben von Bitmap funktioniert nicht
Ich brauch hBild nicht freigeben?! :wall:
okay, danke für die schnelle Antowrt :dp: :cheers: |
Re: Freigeben von Bitmap funktioniert nicht
Wenn es nur eine Referenz auf ein Objekt ist, dass von einer anderen Klasse verwaltet und freigegeben wird, nein.
Allerdings erzeugst mit
Delphi-Quellcode:
ein Speicherleck, da du den einzigen vorhandenen Pointer auf das im Konstruktor erstellte Bitmap fortwirfst.
hBild := pBild;
|
Re: Freigeben von Bitmap funktioniert nicht
Ergo, du brauchst auch das TBitmap.Create nicht ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz