ex2.pp 747 B

123456789101112131415161718192021222324252627
  1. program example2;
  2. { This program demonstrates the GetEnumProp function }
  3. {$mode objfpc}
  4. uses rttiobj,typinfo;
  5. Var
  6. O : TMyTestObject;
  7. PI : PPropInfo;
  8. TI : PTypeInfo;
  9. begin
  10. O:=TMyTestObject.Create;
  11. PI:=GetPropInfo(O,'MyEnumField');
  12. TI:=PI^.PropType;
  13. Writeln('Enum property : ');
  14. Writeln('Value : ',GetEnumName(TI,Ord(O.MyEnumField)));
  15. Writeln('Get (name) : ',GetEnumProp(O,'MyEnumField'));
  16. Writeln('Get (propinfo) : ',GetEnumProp(O,PI));
  17. SetEnumProp(O,'MyEnumField','meFirst');
  18. Writeln('Set (name,meFirst) : ',GetEnumName(TI,Ord(O.MyEnumField)));
  19. SetEnumProp(O,PI,'meSecond');
  20. Writeln('Set (propinfo,meSecond) : ',GetEnumName(TI,Ord(O.MyEnumField)));
  21. O.Free;
  22. end.