Gleichsetzen nicht (wenn's ginge, dann wäre das allerdings auch wieder ein wilder Cast), aber ich hatte auch nicht die einfache TList, sondern die generische TList<> verwendet.
Jener gibt man den Typ und sie baut diesen bei allen Aufrufen ein, womit dann nicht Pointer, sondern der richtige Type dort steht.
PS: Das "typumwandlung" ist aber nicht zufällig ein Objekt (Klasse) ?
Wenn ja, dann verwende besser die
TObjectList, bzw. TObjectList<> .