System.Variants.TCustomVariantType

Delphi
TCustomVariantType = class(TNoRefCountObject)
C++
class PASCALIMPLEMENTATION TCustomVariantType : public System::TNoRefCountObject
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | System.Variants.pas System.Variants.hpp |
System.Variants | System.Variants |
説明
TCustomVariantType は,Delphi のカスタムバリアント型の基本クラスです。
TCustomVariantType を使用すると,Delphi Variant の新しいデータ型を定義できます。TCustomVariantType の下位クラスは,バリアント自体を表しません。処理を実行するためにカスタム Variant が呼び出すユーティリティクラスとして機能します。
Variant 型を作成するには,次の手順にしたがいます。
1. Variant 型データの記憶域を TVarData レコードにマップします。
2. カスタム Variant のインスタンスを作成するメソッドを記述する。これにより,手順 1 で定義された Variant のデータにデータが書き込まれます。
3. TCustomVariantType から派生したクラスを宣言します。
4. 新しいクラスに必要な動作(型変換規則など)を実装します。このとき,適切な仮想メソッド(通常は BinaryOp,UnaryOp,CompareOp,または Compare,Cast,CastTo,Clear,Copy,IsClear,LeftPromotion,RightPromotion)をオーバーライドします。
5. TCustomVariantType の下位クラスを定義するユニットの initialization 部で,クラスのインスタンスを作成します。オブジェクトをインスタンス化すると,自動的に Variant 処理システムに登録され,新しい Variant 型が有効になります。
6. TCustomVariantType の下位クラスを定義するユニットの初期化クラスで,クラスのインスタンスを解放します。これにより,Variant 型は自動的に登録解除されます。
メモ: C++ ではカスタム Variant 型を使用できますが,Delphi では TCustomVariantType の下位クラスを実装する必要があります。
例として FMTBcd ユニットを参照してください。このユニットは,2 進化 10 進数用のカスタム Variant 型を実装します。
ヒント: ユーザーがメソッドまたはプロシージャを呼び出してプロパティ値を取得または設定できるカスタム Variant を作成するには,TInvokeableVariantType を基本クラスとして使用します。