ex13.pp 699 B

123456789101112131415161718192021222324252627282930313233343536
  1. Program example13;
  2. { This program demonstrates the GetPropList function }
  3. uses
  4. rttiobj,typinfo;
  5. Var
  6. O : TMyTestObject;
  7. PT : PTypeData;
  8. PI : PTypeInfo;
  9. I,J : Longint;
  10. PP : PPropList;
  11. prI : PPropInfo;
  12. begin
  13. O:=TMyTestObject.Create;
  14. PI:=O.ClassInfo;
  15. PT:=GetTypeData(PI);
  16. Writeln('Total property Count : ',PT^.PropCount);
  17. GetMem (PP,PT^.PropCount*SizeOf(Pointer));
  18. J:=GetPropList(PI,OrdinalTypes,PP);
  19. Writeln('Ordinal property Count : ',J);
  20. For I:=0 to J-1 do
  21. begin
  22. With PP^[i]^ do
  23. begin
  24. Write('Property ',i+1:3,': ',name:30);
  25. writeln(' Type: ',TypeNames[typinfo.PropType(O,Name)]);
  26. end;
  27. end;
  28. FreeMem(PP);
  29. O.Free;
  30. end.