代码之家  ›  专栏  ›  技术社区  ›  Darian Miller

Delphi区域编译器指令-向后兼容的单元文件?

  •  4
  • Darian Miller  · 技术社区  · 16 年前

    考虑到在单元文件中使用有用的区域编译器指令的愿望,允许在Delphi的早期版本中使用这些相同单元的最佳方法是什么?似乎没有“体面”的方法。(所需的IDE版本是Delphi 7)

    我喜欢在方法定义之上有区域来隐藏/显示方法定义帮助和版本历史注释,但是我必须用其他编译器指令包围区域指令,这有点破坏了区域编译器指令的“干净度”。

    我想,如果使用不支持区域的Delphi版本,那么可以编写一个预处理器来注释所有的区域/结束区域指令,然后为以后的版本添加回去?

    我不是100%地切换到Delphi2009,需要支持多个IDE版本。

    3 回复  |  直到 7 年前
        1
  •  10
  •   gabr    16 年前

    我假设D7不想复制$region或$endregion?我只安装了D2007/9,无法检查。

    试试这个:

    {$IFDEF undef}{$REGION 'bla'}{$ENDIF}
    //some code
    {$IFDEF undef}{$ENDREGION}{$ENDIF}
    

    d2009编辑器按预期创建区域。如果未定义'undef',D7应忽略$region/$endregion。

        2
  •  1
  •   Stijn Sanders    16 年前

    有一些Delphi(7)编辑器增强组件提供了类似的功能。我想 GExperts 做。

    如果您对代码的影响没有意见,那么您可以考虑$I拆分大型文件。

        3
  •  0
  •   Jacek Krawczyk    7 年前

    您可以使用以下代码:

    {$IF CompilerVersion >= 17} // The $REGION directive is available since Delphi 2005
    {$REGION 'RegionName'}
    {$ENDIF} 
    
    // codeblock
    
    {$IF CompilerVersion >= 17} 
    {$ENDREGION 'RegionName'}
    {$ENDIF}