Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Ich weiß den Typ und den Inhalt als String. Wie mache ich ein TValue daraus?

  Alt 16. Aug 2013, 11:12
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.

Geändert von Der schöne Günther (16. Aug 2013 um 12:33 Uhr) Grund: Kreuzpost auf StapelÜberlauf hinzugefügt
  Mit Zitat antworten Zitat