On 2014-05-31 10:57, Vincent Snijders wrote: > I think it is possible to write code without $ifdef (valid for Delphi > and FPC) if you use the typeinfo unit to extract the information. > http://www.freepascal.org/docs-html/rtl/typinfo/
Almost, but not quite. Good news is, it is not nearly as bad as Sven makes it out to be. The tiOPF project uses RTTI extensively. I have written a lot of that code, and with the following helper function, I could eliminate a lot of IFDEF's between FPC and Delphi RTTI behaviour. function tiGetTypeInfo(PropInfo: PPropInfo): PTypeInfo; begin {$IFDEF FPC} Result := PropInfo^.PropType; {$ELSE} Result := PropInfo^.PropType^; {$ENDIF} end; I've also introduced an enhanced GetPropInfo() with a signature as follows: function tiGetPropInfo(AClass: TClass; PropPath: string; PInstance: Pointer): PPropInfo; To see the complete code, take a look at the Core/tiRTTI.pas unit in the tiOPF's 'tiopf2' branch. That unit is also fully unit tested. Tests and usage examples can be found in the following unit: UnitTests/Tests/tiRTTI_TST.pas Regards, - Graeme - -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal