2021年5月5日

マイナーリリースを区別する新しい標準条件シンボル

Delphi Master Release List · ideasawakened/DelphiKB Wiki · GitHubを見ていて気が付いたのですが、いままで標準条件シンボルの定義CONDITIONALEXPRESSIONSではできなかった、マイナーリリース間を区別する(たとえば10.4.1と10.4.2を見分ける)ための新しい標準条件シンボルがRAD Studio/Delphi/C++Builder 10.4.2 Sydneyで導入されたようです。

RAD Studio/Delphi/C++Builder 10.4.1 SydneyまではSystem.pasに
const
  RTLVersion = 34.00;
 {$HPPEMIT '#define RTLVersionC 3400'}
とRTLVersionが定義(34.0)されていたものが、10.4.2 Sydneyでは
const
  RTLVersion = 34.00; RTLVersion1041 = True; RTLVersion1042 = True;
 {$HPPEMIT '#define RTLVersionC 3400'}
と、RTLVersion1041/RTLVersion1042(いずれもTrue)の定義が追加されています。10.4/10.4.1ではこれらの定義が存在せず、10.5でもどうなるのかがいまのところわかっていないので使用方法も判然としないのですが、とりあえず
{$IF RTLVersion = 34.0}
{$IF RTLVersion1042}
  Label1.Caption := 'Delphi 10.4.2.';
{$ELSE}
  Label1.Caption := 'Delphi 10.4 or 10.4.1.';
{$ENDIF}

{$ELSE}
  Label1.Caption := 'Not Delphi 10.4.x.';
{$IFEND}
こんな感じになるでしょうか。

0 件のコメント: