1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
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.
|