delphi – 条件表达式是否在包中被破坏?

前端之家收集整理的这篇文章主要介绍了delphi – 条件表达式是否在包中被破坏?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请考虑以下代码段:
requires
  designide,rtl,vcl,{$IF RTLVersion < 19.0}            // E2026 Constant expression expected
  //{$IF CompilerVersion = 22.0}     // same as above
  vcljpg;
  {$ELSE}
  vclimg;
  {$IFEND}

它似乎在语法上是正确的.但是,编译器会对其进行扼流并报告预期的Constant表达式.这里到底发生了什么?

技术:目前仅在XE(15.0.3953.35171)上测试过.

当然,也欢迎变通方法的建议.

解决方法

我在过去发现了同样的问题,即使使用delphi 2007.作为解决方法,我使用带有条件定义的inc文件,然后使用{$IFDEF}而不是{$IF}

这样的事情

{$I MyDefines.INC}


requires
  designide,{$IFDEF DELPHI_XE_UP} //the DELPHI_XE_UP is defineed inside of MyDefines.INC
  uNewlib;
 {$ELSE}
  uOldLib;
 {$ENDIF}
原文链接:https://www.f2er.com/delphi/102090.html

猜你在找的Delphi相关文章