Eine Funktion die als Result ein Objekt zurück gibt ist ja schön und manchmal gibt es keine andere Möglichkeit, aber das muss man immer zu gut aufpassen, nichts zu vergessen.
Ich persönlich favorisiere diese Methode. Da wird nichts verteilt:
Delphi-Quellcode:
procedure MachWas(Bmp: TBitmap);
begin
Bmp.Canvas.Brush.Color := clRed;
Bmp.Width := 400;
Bmp.Height := 200;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Bmp: TBitmap;
begin
Bmp := TBitmap.Create;
try
MachWas(Bmp);
Canvas.Draw(10, 10, Bmp);
finally
Bmp.Free;
end;
end;