一般的な型情報
RTTI の操作 への移動
RTTI オブジェクトはすべて TRttiObject クラスの下位オブジェクトです。型を記述する RTTI オブジェクトの場合は、TRttiType が最も重要な上位クラスです。これら 2 つの基底クラスでは、RTTI 情報を持つほとんどすべての型および型メンバに適用される多数のメソッドとプロパティを公開しています。
RTTI 対応のすべての型およびメンバに共通する情報には以下のものがあります。
- Handle、RttiDataSize: 未加工の RTTI データが格納されるメモリ上の場所を指すポインタ(前者)とそのメモリ ブロックのサイズ(後者)を指定します。
- Parent: 親 RTTI オブジェクトを指定します。この親は、それぞれ独自の RTTI 情報を持つ複数の部分から成る構造化型を記述する RTTI オブジェクトの場合にのみ意味があります。
- Package: 記述対象となる要素が格納されている親パッケージに関する情報を提供します。
- GetAttributes: 記述対象となる型または型メンバに注釈として付加される属性にアクセスできるようにします。
- Name: 記述対象となる型またはメンバの名前にアクセスできるようにします。
型を記述する RTTI オブジェクトでは、以下を組み込むことで、公開される情報の範囲が広がります。
- QualifiedName: 型の修飾名を返すのに使用されます。
- TypeKind: 型の種類を調べるのに使用されます。
- TypeSize: この型の変数のサイズを指定します。
- BaseType: 上位クラスや上位インターフェイスといった分類階層上の親を持つ型の場合にのみ意味があります。
- 型メンバのクエリに使用される多数のメソッド(メンバを持つ構造化型の場合にのみ使用可能)。
以下のトピックでは、特化した RTTI オブジェクトについて説明します。特化した各 RTTI オブジェクトには、継承されたプロパティやメソッド以外にプロパティやメソッドが追加されています。