gpt4 book ai didi

Delphi CompilerVersion指令问题

转载 作者:行者123 更新时间:2023-12-02 07:38:44 25 4
gpt4 key购买 nike

我有一个在 Delphi 5 和 DelphiXE2 之间共享的库代码文件。我试图将匿名方法功能添加到代码文件中,但仅限于 DelphiXE2 项目(因为 Delphi 5 不支持匿名方法)。看来我应该能够使用 CompilerVersion(注意:我不想将其限制为 DelphiXE2,以防万一我们升级)。

{$IF CompilerVersion >= 23}
{$DEFINE AnonymousAvail}
{$IFEND}

这在 XE2 中工作得很好,但事实证明,Delphi 5 不支持 $IF 指令。我决定将其包装在 $IFDEF 中。这在 Delphi 5 中工作得很好,但 XE2 似乎也没有定义 CompilerVersion,所以 AnonymousAvail 没有定义。

{$IFDEF CompilerVersion}
{$IF CompilerVersion >= 23}
{$DEFINE AnonymousAvail}
{$IFEND}
{$ENDIF}

如有任何帮助,我们将不胜感激。

注意:我无法将匿名方法代码移动到不同的代码文件。

最佳答案

做什么documentation说:

{$IFDEF ConditionalExpressions}
{$IF CompilerVersion >= 23.0}
{$DEFINE AnonymousAvailable}
{$IFEND}
{$ENDIF}

确保外部条件如图所示(并以 ENDIF 结束),并且您可以在内部使用 CompilerVersion 和其他常量和表达式。

您还可以使用

{$IF defined(BLAH)}

或者,我最喜欢的之一:

{$IF declared(AnsiString)}

等等...

<小时/>

FWIW,我注意到链接中的示例几乎逐字来 self 的 Console.pas单元。

关于Delphi CompilerVersion指令问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28401724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com