trtti3.pp 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. Program trtti1;
  2. {$Mode Delphi}
  3. {$M+}
  4. Uses
  5. Rttiobj,Typinfo;
  6. Procedure TestGet (O : TMyTestObject);
  7. begin
  8. // PI:=O.ClassInfo;
  9. With O do
  10. begin
  11. Writeln ('Field properties :');
  12. Write ('Property booleanField : ',BooleanField,' : ');
  13. Writeln(Ord(booleanField)=GetOrdProp(O,'booleanfield'));
  14. Write ('Property ByteField : ',ByteField,' : ');
  15. Writeln(ByteField=GetOrdProp(O,'bytefield'));
  16. Write ('Property CharField : ',CharField,' : ');
  17. Writeln(Ord(CharField)=GetOrdProp(O,'charfield'));
  18. Write ('Property WordField : ',WordField,' : ');
  19. Writeln(WordField=GetOrdProp(O,'wordfield'));
  20. Write ('Property IntegerField : ',IntegerField,' : ');
  21. Writeln(IntegerField=GetOrdProp(O,'integerfield'));
  22. Write ('Property LongintField : ',LongintField,' : ');
  23. Writeln(LongIntField=GetOrdProp(O,'longintfield'));
  24. Write ('Property CardinalField : ',CardinalField,' : ');
  25. Writeln(CardinalField=GetOrdProp(O,'Cardinalfield'));
  26. Write ('Property RealField : ',RealField,' : ');
  27. Writeln(RealField=GetFloatProp(O,'RealField'));
  28. Write ('Property ExtendedField : ',ExtendedFIeld,' : ');
  29. Writeln(ExtendedField=GetFloatProp(O,'ExtendedField'));
  30. Write ('Property AnsiStringField : ',AnsiStringField,' : ');
  31. Writeln(AnsiStringField=GetStrProp(O,'AnsiStringField'));
  32. Write ('Property MyEnumField : ',ord(MyEnumField),' : ');
  33. Writeln (GetEnumProp(O,'myEnumField'));
  34. Writeln ('Method properties :');
  35. Write ('Property booleanMethod : ',BooleanMethod,' : ');
  36. Writeln(Ord(booleanMethod)=GetOrdProp(O,'booleanMethod'));
  37. Write ('Property ByteMethod : ',ByteMethod,' : ');
  38. Writeln(ByteMethod=GetOrdProp(O,'byteMethod'));
  39. Write ('Property CharMethod : ',CharMethod,' : ');
  40. Writeln(Ord(CharMethod)=GetOrdProp(O,'charMethod'));
  41. Write ('Property WordMethod : ',WordMethod,' : ');
  42. Writeln(WordMethod=GetOrdProp(O,'wordMethod'));
  43. Write ('Property IntegerMethod : ',IntegerMethod,' : ');
  44. Writeln(IntegerMethod=GetOrdProp(O,'integerMethod'));
  45. Write ('Property LongintMethod : ',LongintMethod,' : ');
  46. Writeln(LongIntMethod=GetOrdProp(O,'longintMethod'));
  47. Write ('Property CardinalMethod : ',CardinalMethod,' : ');
  48. Writeln(CardinalMethod=GetOrdProp(O,'CardinalMethod'));
  49. Write ('Property RealMethod : ',RealMethod,' : ');
  50. Writeln(RealMethod=GetFloatProp(O,'RealMethod'));
  51. Write ('Property ExtendedMethod : ',ExtendedMethod,' : ');
  52. Writeln(ExtendedMethod=GetFloatProp(O,'ExtendedMethod'));
  53. Write ('Property AnsiStringMethod : ',AnsiStringMethod,' : ');
  54. Writeln(AnsiStringMethod=GetStrProp(O,'AnsiStringMethod'));
  55. Write ('Property MyEnumMethod : ',ord(MyEnumMethod),' : ');
  56. Writeln (GetEnumProp(O,'myEnumMethod'));
  57. Writeln ('VirtualMethod properties :');
  58. Write ('Property booleanVirtualMethod : ',BooleanVirtualMethod,' : ');
  59. Writeln(Ord(booleanVirtualMethod)=GetOrdProp(O,'booleanVirtualMethod'));
  60. Write ('Property ByteVirtualMethod : ',ByteVirtualMethod,' : ');
  61. Writeln(ByteVirtualMethod=GetOrdProp(O,'byteVirtualMethod'));
  62. Write ('Property CharVirtualMethod : ',CharVirtualMethod,' : ');
  63. Writeln(Ord(CharVirtualMethod)=GetOrdProp(O,'charVirtualMethod'));
  64. Write ('Property WordVirtualMethod : ',WordVirtualMethod,' : ');
  65. Writeln(WordVirtualMethod=GetOrdProp(O,'wordVirtualMethod'));
  66. Write ('Property IntegerVirtualMethod : ',IntegerVirtualMethod,' : ');
  67. Writeln(IntegerVirtualMethod=GetOrdProp(O,'integerVirtualMethod'));
  68. Write ('Property LongintVirtualMethod : ',LongintVirtualMethod,' : ');
  69. Writeln(LongIntVirtualMethod=GetOrdProp(O,'longintVirtualMethod'));
  70. Write ('Property CardinalVirtualMethod : ',CardinalVirtualMethod,' : ');
  71. Writeln(CardinalVirtualMethod=GetOrdProp(O,'CardinalVirtualMethod'));
  72. Write ('Property RealVirtualMethod : ',RealVirtualMethod,' : ');
  73. Writeln(RealVirtualMethod=GetFloatProp(O,'RealVirtualMethod'));
  74. Write ('Property ExtendedVirtualMethod : ',ExtendedVirtualMethod,' : ');
  75. Writeln(ExtendedVirtualMethod=GetFloatProp(O,'ExtendedVirtualMethod'));
  76. Write ('Property AnsiStringVirtualMethod : ',AnsiStringVirtualMethod,' : ');
  77. Writeln(AnsiStringVirtualMethod=GetStrProp(O,'AnsiStringVirtualMethod'));
  78. Write ('Property MyEnumVirtualMethod : ',ord(MyEnumVirtualMethod),' : ');
  79. Writeln (GetEnumProp(O,'myEnumVirtualMethod'));
  80. end;
  81. end;
  82. Var O : TMyTestObject;
  83. begin
  84. O:=TMyTestObject.Create;
  85. testget(o);
  86. end.