Wenn man eine Klasse hat, die sich auf ein Bitmap oder Image zeichnen soll, dann ist es am Besten das Bitmap komplett ausserhalb der Klasse zu halten.
Stattdessen braucht man nur einen Canvas zu übergeben.
Das ergibt maximale Flexibilität, denn es ist dann egal ob man auf ein Bitmap zeichnet oder direkt auf das Bitmap eines TImage oder sogar auf den Canvas eines TPaintBox.
Delphi-Quellcode:
TRaumschiff=class(TObject)
public
procedure DrawToCanvas(canvas:TCanvas); // der Knackpunkt - Canvas-Objekt übergeben
property Farbe:TColor;
property Position:TPoint; // x,y-Position auf dem Canvas
property Style:TRaumschiffStyle; // normal oder klingonisch
property ScaleFactor:Double; // zum vergrössern oder verkleinern
...
end;