Ich bekomme es einfach nicht hin.
Mit einem Variant habe ich es auch mal versucht. Aber ich kann da ja nur meinen String reinstecken.
Mit
TValue.Make
komme ich auch nicht weiter: Ich kann problemlos ein TValue-Objekt mit dem Typ tkString erstellen. Aber ich bin absolut hilflos wenn ich gerne ein TValue-Objekt vom Typ
tkInteger
hätte. Ich finde keine
RTTI-Methode die auch nur den geringsten Versuch unternimmt, einen String nach Integer zu casten.
Natürlich kann ich das von Hand machen. Und das tue ich momentan auch für Integer, Single, Double, String, ... Aber das macht doch so keinen Spaß.
Zusammenfassung:
Ich möchte ein Feld oder eine Property eines Objekts über die
RTTI setzen. Für
SetValue(..)
brauche ich ein
TValue
-Objekt. Ich kann nicht ein TValue-Objekt vom Typ String und dem Inhalt '42' nehmen. Ich bin auch zu dumm, ein TValue-Objekt vom Typ Integer anzulegen, obwohl ich weiß, dass es vom TTypeKind 'tkInteger' sein soll.
Was für ein schwarzer Tag.
Anhang:
Gleiche Frage auf SO - Gleiche unbefriedigende Antwort.