Der Fehler müsste darin liegen, dass FindComponent dort nie ein positives Suchergebnis erzielen kann und deswegen dann also auch immer mit dem Ergebnis NIL zurückkommt ...und von diesem quasi mit NIL gepointeten Objekt versuchst du dann die Property "Name" zu lesen, Folge: Eine
Exception! Warum kommt FindComponent da immer mit einem NIL zurück? Weil im Zusammenbau des Suchnamens das IntToStr(i) drin ist und du dieses "i" aber am Ende von Image1MouseDown schon immer gleich um eins erhöhst, dh. also: du hast Komponentname erzeugt die so lauten: "MapObject0", "MapObject1" und "MapObject2". Und suchen tust du dann aber immer nach einem "MapObject3".