FireMonkey のバージョンを判断するには?

条件コンパイルを行うには FireMonkeyVersion 定数を利用します。

条件シンボル Delphi のバージョン
20.0 Delphi XE6 / Appmethod 1.14
19.5 Appmethod 1.13
19.0 Delphi XE5
18.0 Delphi XE4
17.0 Delphi XE3
16.3 Delphi XE2 Update 4
16.2 Delphi XE2 Update 3
16.1 Delphi XE2 Update 2
(未定義) Delphi XE2

{$IF xxx} コンパイラ指令を使って以下のように書けます。

uses
  ..., FMX.Types;


 {$IF Declared(FireMonkeyVersion) and (FireMonkeyVersion >= 17.0)}
   // XE3 以降の処理
   ...
 {$ELSE}  
   // XE2 の処理
   ...
 {$IFEND}

FireMonkeyVersion 定数は FMX.Types で定義されているため、FireMonkeyVersion 定数を使って条件分岐を行うには usesFMX.Types が必要です。

※ FireMonkeyVersion 定数は XE2 Update 2 で定義されました。

XE2 で Update 4 の適用されていない環境は無視していいと思うので、FireMonkey アプリケーションで条件コンパイルを行うには FireMonkeyVersion だけをチェックすればいいと思います。

uses
  ..., FMX.Types;


 {$IF (FireMonkeyVersion >= 17.0)}
   // XE3 以降の処理
   ...
 {$ELSE}  
   // XE2 の処理
   ...
 {$IFEND}

FireMonkeyVersion 定数は単なる定数なので、普通に if 文の分岐条件としても使えます…が、当然アプリケーションのバイナリサイズは大きくなります。条件コンパイル以外で使う事はまずないでしょう。

See Also:


 BACK