System.Variants.TInvokeableVariantType

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

System.Variants.TCustomVariantTypeSystem.TObjectTInvokeableVariantType

Object Pascal

TInvokeableVariantType = class(TCustomVariantType, IVarInvokeable)

C++

class PASCALIMPLEMENTATION TInvokeableVariantType : public TCustomVariantType

プロパティ

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

説明

TInvokeableVariantType は,カスタム Variant 型にプロパティとメソッドを実装するためのカスタム Variant 型の基本クラスです。

プロパティやメソッドを持つ,Object Pascal のバリアント型に対応する新しいデータ型を定義するには,TInvokeableVariantType を使用してください。TInvokeableVariantType の下位クラスは,バリアント自体を表しません。処理を実行するためにカスタム Variant が呼び出すユーティリティクラスとして機能します。

メモ:  C++ では,TInvokeableVariantType の子孫を定義しないでください。カスタム Variant 型のロジックは,Object Pascal のコードで定義する必要があります。

プロパティとメソッドをサポートする Variant 型を作成する手順は次のとおりです。

  1. バリアント型データの記憶域を TVarData レコードにマッピングします。
  2. カスタム Variant のインスタンスを作成するメソッドを記述します。これにより,手順 1 で定義された Variant のデータにデータが書き込まれます。
  3. TInvokeableVariantType から派生したクラスを宣言します。
  4. 新しいクラスに必要な動作(型変換規則など)を実装します。このとき,適切な仮想メソッド(通常は DoFunctionDoProcedureGetPropertySetPropertyBinaryOpUnaryOpCompareOp,または CompareCastCastToClearCopyIsClearLeftPromotionRightPromotion)をオーバーライドします。
  5. TInvokeableVariantType の下位クラスを定義するユニットの initialization 部で,クラスのインスタンスを作成します。オブジェクトをインスタンス化すると,自動的に Variant 処理システムに登録され,新しい Variant 型が有効になります。
  6. TInvokeableVariantType の下位クラスを定義するユニットの初期化クラスで,クラスのインスタンスを解放します。これにより,Variant 型は自動的に登録解除されます。

例として,VarConv ユニットを参照してください。これは,寸法のカスタム Variant 型を実装します。

ヒント:  カスタム Variant 型がオブジェクトインスタンスを使ってデータを保存する場合,かわりに TPublishableVariantType からカスタム Variant 型を派生させることで,そのオブジェクトのパブリッシュプロパティを自動的に実装できます。

関連項目