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


Class properties type data record.


Source position: typinfo.pp line 517

type TTypeData = packed record


  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;




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

Documentation generated on: Jun 22 2020