fpc/docs/typinfex/trtti3.pp
2001-09-01 19:00:14 +00:00

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.