前端之家收集整理的这篇文章主要介绍了
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