mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-17 10:02:31 +02:00
38 lines
1.0 KiB
ObjectPascal
38 lines
1.0 KiB
ObjectPascal
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. |