考虑下面的代码片段:包内是否有条件表达式被破坏?
requires
designide,
rtl,
vcl,
{$IF RTLVersion < 19.0} // E2026 Constant expression expected
//{$IF CompilerVersion = 22.0} // same as above
vcljpg;
{$ELSE}
vclimg;
{$IFEND}
这似乎是绝对正确的语法。然而,编译器扼杀它并报告Constant expression expected
。这里真的发生了什么?
技术:目前仅在XE(15.0.3953.35171)上进行测试。
当然,解决方法建议也是受欢迎的。
FWIW:在D2007中,如果在** contains之后使用**,{{IF IF RTLVersion <19.0}'测试工作。 –
@Ulrich Gerhardt,相当有趣的观察,谢谢! (由XE确认) – OnTheFly