Das wird, so wie du es machst, er st am PRogrammende wieder freigegeben. Es gibt zwei Möglichkeiten, die Sache zu zeichnen.
1.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Procedure XY; var bmp: TBitmap; begin bmp := malwas([...]); Image1.Canvas.Drav([..]bmp); bmp.free; end; |
2. Du kannst doch direkt aufs Canvas zeichnen. Du übergibst der Procedure malwas einfach das Canvas (--> [Delphi] Procedure MalWas(width, height: integer; var Canvas: TCanvas);
Und dann malst du direkt auf dem rum.
Später musst du dann statt
Image1.Canvas.Draw([..], malwas(..)); einfach Image1.Canvas an malwas übergeben. Somit musst du erst gar kein Bitmap erstellen.
Überall mitgekommen? (Man sagt, ich könnte schlecht erklären..

)
Gruß alias5000