FireMoneyVersion not a value defined by the compiler. This is a named constant declared in the FMX.Types module. Try using {$IF DECLARED(FireMonkeyVersion)} or {$IF DEFINED(FireMonkeyVersion)} (I forgot which one supports Delphi), for example:
{$DEFINE HAS_VCL} {$IF DECLARED(FireMonkeyVersion)} {$IF FireMonkeyVersion >= 16} {$UNDEF HAS_VCL} {$DEFINE HAS_FMX} {$IFEND} {$ENDIF}
If this works, I do not see reaon to check its value. You either have FireMonkey or not:
{$IF DECLARED(FireMonkeyVersion)} {$DEFINE HAS_FMX} {$ELSE} {$DEFINE HAS_VCL} {$IFEND}
With that said, keep in mind that it is possible (although not officially supported) to mix FireMonkey and VCL together in the same project. Therefore, you may need to rethink everything that you are trying to accomplish by differentiating the framework.
source share