mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-20 13:32:34 +02:00
93 lines
4.5 KiB
ObjectPascal
93 lines
4.5 KiB
ObjectPascal
Program trtti1;
|
|
|
|
{$Mode Delphi}
|
|
{$M+}
|
|
|
|
Uses
|
|
Rttiobj,Typinfo;
|
|
|
|
Procedure TestGet (O : TMyTestObject);
|
|
|
|
begin
|
|
// PI:=O.ClassInfo;
|
|
With O do
|
|
begin
|
|
Writeln ('Field properties :');
|
|
Write ('Property booleanField : ',BooleanField,' : ');
|
|
Writeln(Ord(booleanField)=GetOrdProp(O,'booleanfield'));
|
|
Write ('Property ByteField : ',ByteField,' : ');
|
|
Writeln(ByteField=GetOrdProp(O,'bytefield'));
|
|
Write ('Property CharField : ',CharField,' : ');
|
|
Writeln(Ord(CharField)=GetOrdProp(O,'charfield'));
|
|
Write ('Property WordField : ',WordField,' : ');
|
|
Writeln(WordField=GetOrdProp(O,'wordfield'));
|
|
Write ('Property IntegerField : ',IntegerField,' : ');
|
|
Writeln(IntegerField=GetOrdProp(O,'integerfield'));
|
|
Write ('Property LongintField : ',LongintField,' : ');
|
|
Writeln(LongIntField=GetOrdProp(O,'longintfield'));
|
|
Write ('Property CardinalField : ',CardinalField,' : ');
|
|
Writeln(CardinalField=GetOrdProp(O,'Cardinalfield'));
|
|
Write ('Property RealField : ',RealField,' : ');
|
|
Writeln(RealField=GetFloatProp(O,'RealField'));
|
|
Write ('Property ExtendedField : ',ExtendedFIeld,' : ');
|
|
Writeln(ExtendedField=GetFloatProp(O,'ExtendedField'));
|
|
Write ('Property AnsiStringField : ',AnsiStringField,' : ');
|
|
Writeln(AnsiStringField=GetStrProp(O,'AnsiStringField'));
|
|
Write ('Property MyEnumField : ',ord(MyEnumField),' : ');
|
|
Writeln (GetEnumProp(O,'myEnumField'));
|
|
Writeln ('Method properties :');
|
|
Write ('Property booleanMethod : ',BooleanMethod,' : ');
|
|
Writeln(Ord(booleanMethod)=GetOrdProp(O,'booleanMethod'));
|
|
Write ('Property ByteMethod : ',ByteMethod,' : ');
|
|
Writeln(ByteMethod=GetOrdProp(O,'byteMethod'));
|
|
Write ('Property CharMethod : ',CharMethod,' : ');
|
|
Writeln(Ord(CharMethod)=GetOrdProp(O,'charMethod'));
|
|
Write ('Property WordMethod : ',WordMethod,' : ');
|
|
Writeln(WordMethod=GetOrdProp(O,'wordMethod'));
|
|
Write ('Property IntegerMethod : ',IntegerMethod,' : ');
|
|
Writeln(IntegerMethod=GetOrdProp(O,'integerMethod'));
|
|
Write ('Property LongintMethod : ',LongintMethod,' : ');
|
|
Writeln(LongIntMethod=GetOrdProp(O,'longintMethod'));
|
|
Write ('Property CardinalMethod : ',CardinalMethod,' : ');
|
|
Writeln(CardinalMethod=GetOrdProp(O,'CardinalMethod'));
|
|
Write ('Property RealMethod : ',RealMethod,' : ');
|
|
Writeln(RealMethod=GetFloatProp(O,'RealMethod'));
|
|
Write ('Property ExtendedMethod : ',ExtendedMethod,' : ');
|
|
Writeln(ExtendedMethod=GetFloatProp(O,'ExtendedMethod'));
|
|
Write ('Property AnsiStringMethod : ',AnsiStringMethod,' : ');
|
|
Writeln(AnsiStringMethod=GetStrProp(O,'AnsiStringMethod'));
|
|
Write ('Property MyEnumMethod : ',ord(MyEnumMethod),' : ');
|
|
Writeln (GetEnumProp(O,'myEnumMethod'));
|
|
Writeln ('VirtualMethod properties :');
|
|
Write ('Property booleanVirtualMethod : ',BooleanVirtualMethod,' : ');
|
|
Writeln(Ord(booleanVirtualMethod)=GetOrdProp(O,'booleanVirtualMethod'));
|
|
Write ('Property ByteVirtualMethod : ',ByteVirtualMethod,' : ');
|
|
Writeln(ByteVirtualMethod=GetOrdProp(O,'byteVirtualMethod'));
|
|
Write ('Property CharVirtualMethod : ',CharVirtualMethod,' : ');
|
|
Writeln(Ord(CharVirtualMethod)=GetOrdProp(O,'charVirtualMethod'));
|
|
Write ('Property WordVirtualMethod : ',WordVirtualMethod,' : ');
|
|
Writeln(WordVirtualMethod=GetOrdProp(O,'wordVirtualMethod'));
|
|
Write ('Property IntegerVirtualMethod : ',IntegerVirtualMethod,' : ');
|
|
Writeln(IntegerVirtualMethod=GetOrdProp(O,'integerVirtualMethod'));
|
|
Write ('Property LongintVirtualMethod : ',LongintVirtualMethod,' : ');
|
|
Writeln(LongIntVirtualMethod=GetOrdProp(O,'longintVirtualMethod'));
|
|
Write ('Property CardinalVirtualMethod : ',CardinalVirtualMethod,' : ');
|
|
Writeln(CardinalVirtualMethod=GetOrdProp(O,'CardinalVirtualMethod'));
|
|
Write ('Property RealVirtualMethod : ',RealVirtualMethod,' : ');
|
|
Writeln(RealVirtualMethod=GetFloatProp(O,'RealVirtualMethod'));
|
|
Write ('Property ExtendedVirtualMethod : ',ExtendedVirtualMethod,' : ');
|
|
Writeln(ExtendedVirtualMethod=GetFloatProp(O,'ExtendedVirtualMethod'));
|
|
Write ('Property AnsiStringVirtualMethod : ',AnsiStringVirtualMethod,' : ');
|
|
Writeln(AnsiStringVirtualMethod=GetStrProp(O,'AnsiStringVirtualMethod'));
|
|
Write ('Property MyEnumVirtualMethod : ',ord(MyEnumVirtualMethod),' : ');
|
|
Writeln (GetEnumProp(O,'myEnumVirtualMethod'));
|
|
end;
|
|
end;
|
|
|
|
Var O : TMyTestObject;
|
|
|
|
begin
|
|
O:=TMyTestObject.Create;
|
|
testget(o);
|
|
end.
|