PaintBox1.Canvas.Draw(i*raster, j*raster,TGraphic(bmp));
Lass die Umwandlung in TGraphic weg.
Kann es sein, dass du in formdestroy (oder was auch immer) erst das array freigibst und dann bmp?
(oder Umgekehrt)
PS:
Delphi-Quellcode:
case map[i, j] of
-1: bmp := picture[1];
0: bmp := picture[0];
-3: bmp := picture[3];
-4: bmp := picture[4];
-5: bmp := picture[5];
-6: bmp := picture[6];
-7: bmp := picture[7];
-8: bmp := picture[8];
-9: bmp := picture[9];
else
bmp := picture[2];
Wieso Minuszahlen? Wären positive Zahlen nicht praktischer? o.O
jedenfalls würde ich das (wenn es denn unbedingt Minuszahlen sein müssen) lieber so machen:
Delphi-Quellcode:
if map[i, j] in [-1,0,-3..-9] then
bmp := picture[-map[i, j]]
else
bmp := picture[2];