ex5.pp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. program example5;
  2. { This program demonstrates the GetObjectProp function }
  3. {$mode objfpc}
  4. uses rttiobj,typinfo;
  5. Var
  6. O : TMyTestObject;
  7. PI : PPropInfo;
  8. NO1,NO2 : TNamedObject;
  9. begin
  10. O:=TMyTestObject.Create;
  11. NO1:=TNamedObject.Create;
  12. NO1.ObjectName:='First named object';
  13. NO2:=TNamedObject.Create;
  14. NO2.ObjectName:='Second named object';
  15. O.ObjField:=NO1;
  16. Writeln('Object property : ');
  17. PI:=GetPropInfo(O,'ObjField');
  18. Write('Property class : ');
  19. Writeln(GetObjectPropClass(O,'ObjField').ClassName);
  20. Write('Value : ');
  21. Writeln((O.ObjField as TNamedObject).ObjectName);
  22. Write('Get (name) : ');
  23. Writeln((GetObjectProp(O,'ObjField') As TNamedObject).ObjectName);
  24. Write('Get (propinfo) : ');
  25. Writeln((GetObjectProp(O,PI,TObject) as TNamedObject).ObjectName);
  26. SetObjectProp(O,'ObjField',NO2);
  27. Write('Set (name,NO2) : ');
  28. Writeln((O.ObjField as TNamedObject).ObjectName);
  29. SetObjectProp(O,PI,NO1);
  30. Write('Set (propinfo,NO1) : ');
  31. Writeln((O.ObjField as TNamedObject).ObjectName);
  32. O.Free;
  33. end.