[Overview][Constants][Types][Classes][Procedures and functions][Index] | Reference for unit 'TypInfo' (#rtl)

# TTypeData

Class properties type data record.

## Declaration

Source position: typinfo.pp line 517

`type TTypeData = packed record`
`public`
`property BaseType: PTypeInfo; [r]` |  | Base type on which this type is based.
`property CompType: PTypeInfo; [r]` |  | Comp type
`property ParentInfo: PTypeInfo; [r]` |  | Parent class type info
`property RecInitData: PRecInitData; [r]`
`property HelperParent: PTypeInfo; [r]` |  | Type information for parent helper class
`property ExtendedInfo: PTypeInfo; [r]` |  | Type information for the extended type (record or class).
`property IntfParent: PTypeInfo; [r]` |  | Parent interface type data.
`property RawIntfParent: PTypeInfo; [r]` |  | Raw interface parent.
`property IIDStr: ShortString; [r]` |  | IID string representation of interface
`property ElType2: PTypeInfo; [r]` |  | Dynamical array Element type
`property ElType: PTypeInfo; [r]` |  | Dynamical array Element type
`property InstanceType: PTypeInfo; [r]` |  | Pointer to instance type data
`property RefType: PTypeInfo; [r]` |  | Type info for referred type (Nil for untyped pointer)
``
`case TTypeKind of`
`tkUnKnown, tkLString, tkWString, tkVariant, tkUString: (`
`);`
`tkAString: (`
`CodePage: Word;` |  | Codepage for a single-byte string type
`);`
`tkInt64, tkQWord, tkInteger, tkChar, tkEnumeration, tkBool, tkWChar, tkSet: (`
`OrdType: TOrdType;` |  | Type is an ordinal type
`case TTypeKind of`
`tkInteger, tkChar, tkEnumeration, tkBool, tkWChar: (`
`MinValue: LongInt;` |  | Minimum value for the (subrange) type.
`MaxValue: LongInt;` |  | Maximum value for the (subrange) type.
`case TTypeKind of`
`tkEnumeration: (`
`BaseTypeRef: PPTypeInfo;`
`NameList: ShortString;` |  | List of names for an enumerated type
`);`
`);`
`tkInt64: (`
`MinInt64Value: Int64;` |  | Minimum Int64 value for subrange type.
`MaxInt64Value: Int64;` |  | Maximum int64 value for subrange type.
`);`
`tkQWord: (`
`MinQWordValue: QWord;` |  | Minimum QWord value for a subrange type.
`MaxQWordValue: QWord;` |  | Maximum QWord value for a subrange type.
`);`
`tkSet: (`
`SetSize: SizeInt;`
`CompTypeRef: PPTypeInfo;`
`);`
`);`
`tkFloat: (`
`FloatType: TFloatType;` |  | Float type
`);`
`tkSString: (`
`MaxLength: Byte;` |  | Maximum length (for a shortstring type)
`);`
`tkClass: (`
`ClassType: TClass;` |  | Class type
`ParentInfoRef: PPTypeInfo;`
`PropCount: SmallInt;` |  | Property count for class type
`UnitName: ShortString;` |  | Unit name in which type is defined.
`);`
`tkRecord: (`
`RecInitInfo: Pointer;`
`RecSize: Integer;` |  | Record size for records
`case Boolean of`
`False: (`
`ManagedFldCount: Integer;` |  | Number of managed fields (followed by managed field info)
`);`
`True: (`
`TotalFieldCount: Integer;`
`);`
`);`
`tkHelper: (`
`HelperParentRef: PPTypeInfo;`
`ExtendedInfoRef: PPTypeInfo;`
`HelperProps: SmallInt;` |  | Number of properties provided by the helper.
`HelperUnit: ShortString;` |  | Unit the helper class is defined in.
`);`
`tkMethod: (`
`MethodKind: TMethodKind;` |  | Kind of method
`ParamCount: Byte;` |  | Method parameter count
`ParamList: array [0..1023] of Char;` |  | Type data for parameters
`);`
`tkProcVar: (`
`ProcSig: TProcedureSignature;` |  | Procedure signature for procedure type
`);`
`tkInterface: (`
`IntfParentRef: PPTypeInfo;`
`IntfFlags: TIntfFlagsBase;` |  | Interface flags
`GUID: TGuid;` |  | GUID identification for interface
`IntfUnit: ShortString;` |  | Interface unit.
`);`
`tkInterfaceRaw: (`
`RawIntfParentRef: PPTypeInfo;`
`RawIntfFlags: TIntfFlagsBase;` |  | Raw interface parent flags.
`IID: TGuid;` |  | GUID identifying raw interface.
`RawIntfUnit: ShortString;` |  | Raw interface unit.
`);`
`tkArray: (`
`ArrayData: TArrayTypeData;` |  | Array element data
`);`
`tkDynArray: (`
`elSize: PtrUInt;` |  | Dynamical array element size
`elType2Ref: PPTypeInfo;`
`varType: LongInt;` |  | Dynamical array element type
`elTypeRef: PPTypeInfo;`
`DynUnitName: ShortStringBase;` |  | Unit name
`);`
`tkClassRef: (`
`InstanceTypeRef: PPTypeInfo;`
`);`
`tkPointer: (`
`RefTypeRef: PPTypeInfo;`
`);`
`end;`

## Description

If the typeinfo kind is tkClass, then the property information follows the UnitName string, as an array of TPropInfo records.

Documentation generated on: May 14 2021