Auch stehe ich jetzt schon auf dem Schlauch, warum man sich den "as"-Cast sparen können soll? Was, wenn "DoSomethingDifferent" eben erst in der "TPlayerClass" deklariert worden ist?
Einen harten Cast nehmen:
Delphi-Quellcode:
if kiObjectList.Items[i] is TPlayerClass then
TPlayerClass(kiObjectList.Items[i]).DoSomethingDifferent;
Der ist durch das if-is abgesichert.