Statt
TList(F1.GetValue(Parkplatz).AsObject)
besser
(F1.GetValue(Parkplatz).AsObject as TList)
, denn wenn das zufällig mal keine TList sein sollte, suchst du dich eventuell noch dusskig, nach diesem Fehler.
oder auch in etwa so: (also den Typ der TList prüfen)
Delphi-Quellcode:
var L: TObject;
T := C.GetType(TParkplatz);
F1 := T.GetField(Wert1);
if Assigned(F1) then
begin
L := F1.GetValue(Parkplatz).AsObject;
T := C.GetType(TAuto);
F2 := T.GetField(Wert2);
if (L is TList) and Assigned(F2) then
Result := F2.GetValue(TList(L)[i]).AsExtended;
end;