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

时间:2009-04-18 23:34:48

标签: delphi compiler-construction region

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

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

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

我没有100%切换到Delphi 2009,需要支持多个IDE版本。

3 个答案:

答案 0 :(得分:10)

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

试试这个:

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

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

答案 1 :(得分:1)

有一些Delphi(7)编辑器增强组件,提供这样的东西。我认为GExperts会这样做。

如果您对代码产生影响,可以考虑{$ I}来拆分大型文件。

答案 2 :(得分:0)

您可以使用以下代码:

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

// codeblock

{$IF CompilerVersion >= 17} 
{$ENDREGION 'RegionName'}
{$ENDIF}