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

# GetEnumProp

Return the value of an enumeration type property.

## Declaration

Source position: typinfo.pp line 794

`function GetEnumProp(`
`Instance: TObject;`
`const PropName: string`
`):string; function GetEnumProp(`
`Instance: TObject;`
`const PropInfo: PPropInfo`
`):string;`

## Description

GetEnumProp returns the value of an property of an enumerated type and returns the name of the enumerated value for the object Instance. The property whose value must be returned can be specified by its property info in PropInfo or by its name in PropName

## Errors

No check is done to determine whether PropInfo really points to the property information for an enumerated type. Specifying an invalid property name in PropName will result in an EPropertyError exception.

## See also

SetEnumProp |  | Set value of an enumerated-type property
GetOrdProp |  | Get the value of an ordinal property
GetStrProp |  | Return the value of a string property.
GetInt64Prop |  | return value of an Int64 property
GetMethodProp |  | Return value of a method property
GetSetProp |  | Return the value of a set property.
GetObjectProp |  | Return value of an object-type property.
GetEnumProp |  | Return the value of an enumeration type property.

## Example

    program example2;

    { This program demonstrates the GetEnumProp function }

    {$mode objfpc}

    uses rttiobj,typinfo;

    Var
      O : TMyTestObject;
      PI : PPropInfo;
      TI : PTypeInfo;

    begin
      O:=TMyTestObject.Create;
      PI:=GetPropInfo(O,'MyEnumField');
      TI:=PI^.PropType;
      Writeln('Enum property    : ');
      Writeln('Value                   : ',GetEnumName(TI,Ord(O.MyEnumField)));
      Writeln('Get (name)              : ',GetEnumProp(O,'MyEnumField'));
      Writeln('Get (propinfo)          : ',GetEnumProp(O,PI));
      SetEnumProp(O,'MyEnumField','meFirst');
      Writeln('Set (name,meFirst)      : ',GetEnumName(TI,Ord(O.MyEnumField)));
      SetEnumProp(O,PI,'meSecond');
      Writeln('Set (propinfo,meSecond) : ',GetEnumName(TI,Ord(O.MyEnumField)));
      O.Free;
    end.

Documentation generated on: May 14 2021