鉴于希望在单元文件中使用有用的Region编译器指令,允许在以前版本的Delphi中使用这些相同单元的最佳方法是什么?似乎没有“体面”的方法。 (所需的IDE版本是Delphi 7)
我喜欢在方法定义之上使用区域来隐藏/显示方法定义帮助和版本历史记录注释,但是我必须用其他编译器指令包围Region指令,这有点杀死了区域编译器指令的“清晰度”。
我认为如果使用不支持区域的Delphi版本,可以编写一个预处理器来注释掉所有Region / EndRegion指令。然后再添加回来用于以后的版本?
我没有100%切换到Delphi 2009,需要支持多个IDE版本。
答案 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}