[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