ene*_*ser 1 delphi compiler-directives delphi-5 delphi-xe2
我有一个库代码文件,在Delphi 5和DelphiXE2之间共享.我试图在代码文件中添加匿名方法功能,但仅适用于DelphiXE2项目(因为Delphi 5不支持匿名方法).我似乎应该可以使用CompilerVersion(注意:我不想将它限制为DelphiXE2,以防我们升级).
{$IF CompilerVersion >= 23}
{$DEFINE AnonymousAvail}
{$IFEND}
Run Code Online (Sandbox Code Playgroud)
这在XE2中运行良好,但事实证明,Delphi 5不支持$ IF指令.我决定将它包装在$ IFDEF中.这在Delphi 5中运行良好,但XE2似乎也没有定义CompilerVersion,因此AnonymousAvail没有定义.
{$IFDEF CompilerVersion}
{$IF CompilerVersion >= 23}
{$DEFINE AnonymousAvail}
{$IFEND}
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
注意:我无法将匿名方法代码移动到其他代码文件.
做文件说的话:
{$IFDEF ConditionalExpressions}
{$IF CompilerVersion >= 23.0}
{$DEFINE AnonymousAvailable}
{$IFEND}
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)
确保外部条件如图所示(并使用ENDIF关闭),您可以在其中使用CompilerVersion和其他常量和表达式.
你也可以使用
{$IF defined(BLAH)}
Run Code Online (Sandbox Code Playgroud)
或者,我最喜欢的一个:
{$IF declared(AnsiString)}
Run Code Online (Sandbox Code Playgroud)
等等...
FWIW,我注意到链接中的示例几乎是逐字逐句来自我的Console.pas单元.
| 归档时间: |
|
| 查看次数: |
852 次 |
| 最近记录: |