1234567891011121314151617181920212223242526272829303132333435363738 |
- program example5;
- { This program demonstrates the GetObjectProp function }
- {$mode objfpc}
- uses rttiobj,typinfo;
- Var
- O : TMyTestObject;
- PI : PPropInfo;
- NO1,NO2 : TNamedObject;
-
- begin
- O:=TMyTestObject.Create;
- NO1:=TNamedObject.Create;
- NO1.ObjectName:='First named object';
- NO2:=TNamedObject.Create;
- NO2.ObjectName:='Second named object';
- O.ObjField:=NO1;
- Writeln('Object property : ');
- PI:=GetPropInfo(O,'ObjField');
- Write('Property class : ');
- Writeln(GetObjectPropClass(O,'ObjField').ClassName);
- Write('Value : ');
- Writeln((O.ObjField as TNamedObject).ObjectName);
- Write('Get (name) : ');
- Writeln((GetObjectProp(O,'ObjField') As TNamedObject).ObjectName);
- Write('Get (propinfo) : ');
- Writeln((GetObjectProp(O,PI,TObject) as TNamedObject).ObjectName);
- SetObjectProp(O,'ObjField',NO2);
- Write('Set (name,NO2) : ');
- Writeln((O.ObjField as TNamedObject).ObjectName);
- SetObjectProp(O,PI,NO1);
- Write('Set (propinfo,NO1) : ');
- Writeln((O.ObjField as TNamedObject).ObjectName);
- O.Free;
- end.
|