Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Bitmap zurück geben und freigeben

  Alt 3. Jan 2008, 14:40
Zitat von Desmulator:
ich würde es aber gerne so nutzen

GameScreen.Canvas.Draw(StaticObject.PosX,StaticObject.PosY,StaticObject.Appear()); TStaticObject.Appear() gibt eine Bitmap zurück die ich auf GameScreen zeichen will...
Dann musst du mit dem Speicherleck leben. Grundsätzlich gibt man Objekte auf der Ebene frei, wo sie angelegt wurden. Da du das Objekt aber zurück geben willst, kannst du das nicht machen. Also entweder zusätzliche Bitmap oder Speicherleck.

Anderer Vorschlag: Warum nicht so?

  StaticObject.DrawAppear(GameScreen.Canvas); Schliesslich hat StaticObject PosX, PosY und das Bitmap...

Nachtrag zu deiner Lösung: (freigeben fehlte, try/finally nur Sicherheit)

Delphi-Quellcode:
TStaticObject.Appear(TempBmp);
try
  GameScreen.Canvas.Draw(StaticObject.PosX,StaticObject.PosY,TempBmp); //Das finde ich is doof
finally
  TempBmp.Free;
end;
  Mit Zitat antworten Zitat