Ich habe noch ein Problem mit den Aufzählungstypen:
Delphi-Quellcode:
Value := TValue.Empty;
case PropInfo.PropertyType.TypeKind of
tkUnknown:
;
tkInteger:
Value := TValue.From(StrToIntDef(PropValue, 0));
tkChar:
;
tkEnumeration:
Value := TValue.From(TXyz(GetEnumValue(PropInfo.PropertyType.Handle, PropValue))); // <-- HIER
tkFloat:
;
...
end;
if not Value.IsEmpty then
PropInfo.SetValue(od, Value);
Ich möchte hier natürlich universelle Aufzählungstypen zuweisen. Mit GetEnumValue erhalte ich den korrekten Ordinalwert.
Wenn hart in Txyz caste, funktioniert auch die Varianten-Zuweisung korrekt. Wenn aber TAbc eingelesen werden soll, funktioniert das natürlich nicht.
Kann ich irgendwie
PropInfo.MYTYPE(GetEnumValue(PropInfo.PropertyType.Handle, PropValue))
oder ähnliches verwenden?
Irgendwo liegt hoffentlich ein
Handle auf den Typ TXyz bzw. TAbc ... bitte, bitte, bitte
Oder kann ich SetValue irgendwie zwingen, einen Ordinalwert für Aufzählungstypen anzunehmen?