Meine aktuelle Version ist 11.3 (CE). 'Compilerversion' und 'RTLVersion' ist 35, woraus man schließen kann, dass es sich um die Version 11 handelt (die wohl ursprünglich 10.5 heißen sollte).
Wie aber kann man zur Laufzeit auch das aktuelle Update ermitteln, sodass als Version '11.3' erscheint?
Zusätzlich zu RTLVersion = 35.0 sind in 11.3 noch die Konstanten
RTLVersion111,
RTLVersion112 und
RTLVersion113 deklariert. Damit lassen sich die Unterversionen prüfen. Da aber in 11.2 das
RTLVersion113 noch nicht bekannt war, in 11.1 auch das
RTLVersion112 und in 11.0 keines der drei, kann man diese Konstanten nicht im compilierten Code prüfen. Stattdessen prüft man das über ein
declared.
Delphi-Quellcode:
if RTLVersion = 35.0 then begin
DelphiVersion := '11';
{$IF Declared(RTLVersion111)}
DelphiVersion := '11.1';
{$ENDIF}
{$IF Declared(RTLVersion112)}
DelphiVersion := '11.2';
{$ENDIF}
{$IF Declared(RTLVersion113)}
DelphiVersion := '11.3';
{$ENDIF}
end;