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