I know you've fixed the problem but this,
Make it a global field of TGameObject
This is just a sudjestion, but it seems right to me to stick the object list inside the object. Global are like fuctions they are concidered to belong to the type, rather than an indivigual instance.
Local GameObjectList:TList = CreateList()Which I assume you've changed to Global.
Make it a global field of TGameObject
Type TGameObject Global List:TList = CreateList() Field X:Int Field y:Int Field Speed:Int = 5 Field Image:TImage ... ... End TypeYou dont need to change its name, but TGameObject.List makes more sence than TGameObject.GameObjectList. Then change all GameObjectList to TGameObject.List
This is just a sudjestion, but it seems right to me to stick the object list inside the object. Global are like fuctions they are concidered to belong to the type, rather than an indivigual instance.