問題タブ [tvalue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3021 参照

delphi - Delphi 2010 RTTI:TValueを使用してデータを保存する

TValueを使用してデータをTList<>に格納できるようにしたいと思います。のように :

そして少し後、メインプログラムで、次のような「流暢な」xmlビルダーを使用します。

2回目の呼び出しで、プログラムはアクセス違反の例外を発生させます。

最初のTValueが「解放」されたようです。TValueを使用して「バリアント」データをランタイムに保存することは本当に可能ですか?

Delphiにはバリアントが存在することを知っています。私のXMLビルダーは、RTTIを使用してネイティブのdelphiオブジェクトをXMLに(逆)シリアル化するために使用されるため、どこでもTValueを使用します。

よろしく、

-ピエール・イェーガー

0 投票する
4 に答える
9942 参照

delphi - TValueを使用して文字列を列挙型に変換しますか?

TValueを使用して文字列を列挙型に変換したいのですが、グーグルで検索しましたが、その方法が見つかりませんでした。

動作しません。それは私が見ていなかった愚かなことであるに違いありません-しかし私はそれを見つけませんでした。何を間違えたの?

GetEnumValueの使用方法を知っています。

編集:@ウォーレン、これはコードを投稿するのが簡単なので、ここに行きます:

使用法:

0 投票する
2 に答える
1202 参照

delphi - Delphi 2010 での Rtti データ操作と一貫性

元のデータへの参照を使用して TValue を作成する方法を知っている人はいますか? 私のシリアライゼーション プロジェクトでは、( XML-Serializationで提案されているように) TValues を内部ツリー構造に格納する汎用シリアライザーを使用します (例の MemberMap に似ています)。

このメンバ ツリーは、動的セットアップ フォームを作成し、データを操作するためにも使用する必要があります。私の考えは、データのプロパティを定義することでした:

GetData、SetData メソッドの実装:

残念ながら、TValue.From メソッドは常に元のデータのコピーを作成します。したがって、アプリケーションがデータに変更を加えるたびに、DataModel は更新されません。逆に、DataModel を動的な形式で変更しても、元のデータは影響を受けません。確かに、何かを変更する前後にいつでも Data プロパティを使用できますが、DataModel 内で多くの Rtti を使用するため、いつでもこれを実行したくありません。

おそらく誰かがより良い提案をしていますか?

0 投票する
1 に答える
2182 参照

delphi - RTTI Delphi n 次元行列を TValue として作成

良い一日、

TValueは Delphi-2010 以降の RTTI 機能です。

以前の質問に続いて、TValue を n 次元として返す再帰関数を作成しようとしました。行列(2D、3D、4D...)

たとえば、次の手順では n 次元のマトリックスが表示されます (n 次元のマトリックスのすべての要素が TValue 変数としてリストされます)。

TValue から n 次元の行列を作成する関数を作成する方法がわかりません。たとえば、関数 CreateDynArray(Dimensions:array of integer; Kind:TTypeKind):TValue; が必要です。関数は、次のような次元を含む動的配列である TValue を返します。

Return=CreateDynArray([2,3],tkInteger); TValue を tkDynArray として返し、(Return) を表示する場合はリストします

終了していません。TValue から、n 次元の DynArray を作成しようとしています

アイデア

どうもありがとうございました。よい一日を!

0 投票する
1 に答える
1675 参照

delphi - Delphi XE:私のTValue.Equals()はどこにありますか?

私の意見では、必須のメソッドがTValueから欠落しているようです。TValue.Equals(TValue)。

したがって、2つのTValueを比較するための高速で適切な方法は、できればTValue.ToString()を使用せずに、バリアントやレコードなどの間で誤った一致を許可する方法です。

0 投票する
1 に答える
247 参照

delphi - TEditBox.data を TValue.TypeInfo に自動的に検証

TEdit.DataFMX 編集ボックスがあり、入力した値 ( ) をTValueオブジェクトのプロパティに割り当てたいと考えています。このオブジェクトTypeInfoには、編集ボックスに入力されたデータの型を指定するポインタも含まれています。

私が達成したいのは、入力されたデータを TAtrib.Value に割り当ててから、次のように、WantedType に従って、入力されたデータが正しい形式であるかどうかを検証できることです。

Valueは常に文字列型でありTryCast、入力された文字列が ie で適切に変換される場合でも、文字列から拡張された ie に変換されないため、これは失敗します。StrToFloat()

どうすればこれを達成できますか?

0 投票する
1 に答える
1103 参照

delphi - TValue を TDateTime に変換する

TDateTime で TValue を変換するにはどうすればよいですか?

AsInteger、AsDouble などのメソッドがありますが、TDateTime には何もありません。