Si consideri il seguente frammento di codice:Le espressioni condizionali sono suddivise in pacchetti?
requires
designide,
rtl,
vcl,
{$IF RTLVersion < 19.0} // E2026 Constant expression expected
//{$IF CompilerVersion = 22.0} // same as above
vcljpg;
{$ELSE}
vclimg;
{$IFEND}
Sembra essere assolutamente sintatticamente corretto. Tuttavia, il compilatore soffoca su di esso e riporta Constant expression expected
. Cosa succede veramente qui?
Tecnico: attualmente testato solo su XE (15.0.3953.35171).
Naturalmente, anche i suggerimenti di soluzione sono ben accetti.
FWIW: in D2007 il test '{$ IF RTLVersion <19.0}' funziona se usato ** dopo ** il 'contains'clause. –
@Ulrich Gerhardt, osservazione abbastanza interessante, grazie! (confermato con XE) – OnTheFly