Es sind keine Objekte im Array sondern 2 Klassen\Classen wie auch immer.
Nur als Ergänzung bzw. Begriffsklärung:
Es sind definitiv Objekte in deinem Array. Eine Klasse ist immer nur ein
Typ. Ein Objekt ist eine konkrete, mit Werten "befüllte" Instanz dieses Typs.
Von daher:
TSprite => Klasse
wenn gs: array of TSprite; dann
gs[Index] => Objekt vom
Typ TSprite
Ein Objekt ist immer das, wo man auch Werte zuweisen kann. Eine Klasse ist das, womit man TSprite.Create() schreibt. (Vereinfacht gesagt.) Und TSprite.Create() erzeugt ein
Objekt vom Typ TSprite.
Mit einer Klasse definierst du lediglich welche Werte mit was für Namen und mit welchen Funktionen eine Einheit ergeben sollen. Aber in einer Klasse stehen noch keine Werte drin. Sie ist nur ein Stempel sozusagen, mit dem du nachher beliebig viele
Objekte des Typs TSprite stempeln kannst, wo dann auch Werte rein geschrieben werden können.
Das ist zumindest, wie die Begriffe praktisch überall verwendet werden.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)