5

鉴于希望在单元文件中使用有用的 Region 编译器指令,允许在以前版本的 Delphi 中使用这些相同单元的最佳方法是什么?似乎没有“体面”的方法。(所需的 IDE 版本是 Delphi 7)

我喜欢在方法定义上方设置区域来隐藏/显示方法定义帮助和版本历史注释,但我必须将区域指令与其他编译器指令包围起来,这有点破坏区域编译器指令的“清洁度”。

我想如果使用不支持区域的 Delphi 版本,可以编写一个预处理器来注释掉所有 Region/EndRegion 指令。然后再添加回来以供以后的版本使用?

我不是 100% 切换到 Delphi 2009 并且需要支持多个 IDE 版本。

4

3 回答 3

11

我假设 D7 不想编译 {$REGION} 或 {$ENDREGION}?我只安装了 D2007/9,无法检查。

试试这个:

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

D2009 编辑器按预期创建区域。如果未定义“undef”,D7 应忽略 $REGION/$ENDREGION。

于 2009-04-19T07:14:16.873 回答
1

那里有一些 Delphi(7) 编辑器增强组件,它们提供了类似的东西。我认为GExperts可以。

如果您对代码的影响感到满意,您可以考虑使用 {$I } 来拆分大文件。

于 2009-04-20T07:39:57.787 回答
1

您可以使用以下代码:

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

// codeblock

{$IF CompilerVersion >= 17} 
{$ENDREGION 'RegionName'}
{$ENDIF}
于 2018-11-07T15:06:42.090 回答