Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#11

Re: Bitmap als Zeiger - Ich versteh es nicht !

  Alt 21. Dez 2005, 10:05
Kleines Beispiel:
Delphi-Quellcode:
function MyFunc (AValue: String): TBitmap;
var
  MyVar: Boolean;
begin

  //Etwas machen

  Result := TBitmap.Create;

  Result.Machwas;

end;

//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

var
  TempBmp, Bmp1, Bmp2, Bmp3, Bmp4: TBitmap;
begin
  Bmp1:= TBitmap.Create;
  Bmp2:= TBitmap.Create;
  Bmp1.LoadFromFile('C:\bild1.bmp');
  Bmp2.LoadFromFile('C:\bild2.bmp');

  TempBmp := MyFunc ('Ein Bitmap bitte');

  Bmp3 := TempBmp; // Addresse zugewiesen - Bmp3 und TempBmp zeigen auf dasselbe Bitmap

  Bmp4 := TBitmap.Create;
  Bmp4.Assign (TempBmp); // Bitmap Kopiert

  // Hier zeigen TempBmp und Bmp3 auf das zurückgegebene Bitmap und Bmp4 zeigt auf eine Kopie dessen.

  TempBmp := MyFunc ('Ein anderes Bitmap bitte'); // Kein Leak, wel Addresse noch in Bmp3
  // Bmp3 := nil; // Leak
  FreeAndNil (Bmp3);
Ich hoffe, ich konnte dir helfen
  Mit Zitat antworten Zitat