System.Variants.TCustomVariantType

提供: Appmethod Libraries
移動先: 案内検索

System.TObjectTCustomVariantType

Object Pascal

TCustomVariantType = class(TObject, IInterface)

C++

class PASCALIMPLEMENTATION TCustomVariantType : public System::TObject

プロパティ

種類 可視性 ソース ユニット
class public
System.Variants.pas
System.Variants.hpp
System.Variants System.Variants

説明

TCustomVariantType は,Object Pascal のカスタムバリアント型の基本クラスです。

TCustomVariantType を使用すると,Object Pascal Variant の新しいデータ型を定義できます。TCustomVariantType の下位クラスは,バリアント自体を表しません。処理を実行するためにカスタム Variant が呼び出すユーティリティクラスとして機能します。

Variant 型を作成するには,次の手順にしたがいます。

1. Variant 型データの記憶域を TVarData レコードにマップします。

2. カスタム Variant のインスタンスを作成するメソッドを記述する。これにより,手順 1 で定義された Variant のデータにデータが書き込まれます。

3. TCustomVariantType から派生したクラスを宣言します。

4. 新しいクラスに必要な動作(型変換規則など)を実装します。このとき,適切な仮想メソッド(通常は BinaryOpUnaryOpCompareOp,または CompareCastCastToClearCopyIsClearLeftPromotionRightPromotion)をオーバーライドします。

5. TCustomVariantType の下位クラスを定義するユニットの initialization 部で,クラスのインスタンスを作成します。オブジェクトをインスタンス化すると,自動的に Variant 処理システムに登録され,新しい Variant 型が有効になります。

6. TCustomVariantType の下位クラスを定義するユニットの初期化クラスで,クラスのインスタンスを解放します。これにより,Variant 型は自動的に登録解除されます。

メモ:  C++ ではカスタム Variant 型を使用できますが,Object Pascal では TCustomVariantType の下位クラスを実装する必要があります。

例として FMTBcd ユニットを参照してください。このユニットは,2 進化 10 進数用のカスタム Variant 型を実装します。

ヒント:  ユーザーがメソッドまたはプロシージャを呼び出してプロパティ値を取得または設定できるカスタム Variant を作成するには,TInvokeableVariantType を基本クラスとして使用します。

関連項目