what about a list for the currently placed tiles. each item in the list only holds info on that tile in the game, so if i have placed 70 tiles i have 70 items in the list (0 to 69).

the only bad thing is if you then want to select a tile that is currently placed, you will have to loop through all the tiles (could get slow). so basically you would have something like this:

[pascal]

TTile = class/record etc
Image: TImage?;
DrawX: integer;
DrawY: Integer;

[/pascal]