Considere el siguiente fragmento:¿Se rompen las expresiones condicionales dentro de los paquetes?
requires
designide,
rtl,
vcl,
{$IF RTLVersion < 19.0} // E2026 Constant expression expected
//{$IF CompilerVersion = 22.0} // same as above
vcljpg;
{$ELSE}
vclimg;
{$IFEND}
Parece ser absolutamente sintácticamente correcta. Sin embargo, el compilador se ahoga e informa Constant expression expected
. ¿Qué pasa realmente aquí?
Técnico: actualmente probado solo en XE (15.0.3953.35171).
Por supuesto, las sugerencias de soluciones también son bienvenidas.
FWIW: En D2007 la prueba '{$ IF RTLVersion <19.0}' funciona si se usa ** después de ** la cláusula 'contains'. –
@Ulrich Gerhardt, observación bastante interesante, ¡gracias! (confirmado con XE) – OnTheFly