考慮下面的代碼片段:包內是否有條件表達式被破壞?
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