Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: RTTI - Property - SetValue

  Alt 28. Dez 2010, 16:36
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?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat