我正在使用Documentation Insight功能来记录Delphi库,目前使用Delphi 2005到XE3可以正常工作。现在我想添加对旧版Delphi(5,6,7)的支持。
但是当尝试在比2005年更小的Delphi版本中编译这样的代码时(Delphi 5,6,7)
{$REGION 'Documentation'}
/// <summary>
/// This is a sample text
/// </summary>
{$ENDREGION}
TFoo=class
procedure Tick;
end;
我收到编译错误
无效的编译器指令REGION
什么是好的,因为当Delphi IDE改为Galileo(Delphi 2005)时引入了REGION
保留字。
所以,现在作为解决方法我正在使用这种语法来编译Delphi 5中的代码 - 到XE3。
{$IFDEF NODEF}{$REGION 'Documentation'}{$ENDIF}
/// <summary>
/// This is a sample text
/// </summary>
{$IFDEF NODEF}{$ENDREGION}{$ENDIF}
TFoo=class
procedure Tick;
end;
但是现在使用这样的代码,Documentation Insight不再适用于Delphi XE2和XE3。
所以问题是,如何在旧版本的Delphi中编译记录的Delphi代码而不影响新版Delphi版本中的Documentation Insight?
答案 0 :(得分:7)
如果您删除{$REGION}
标记,Document Insight仍然有效,旧版本应将文档视为普通注释。您只能在支持代码折叠的IDE版本中折叠文档,这就是全部。
答案 1 :(得分:5)
如果您必须在新旧Delphi中有一个编译但没有更改的代码库,则此解决方案将无效。
它很丑陋,当你从较旧版本的Delphi来回移动到新版本时,它必须完成和撤消。
但是,你可以来回地浏览你的整个项目。
例如,从XE2转到D7时,您将转换此
{$REGION 'Documentation'}
通过插入空格并删除尾随}所以它看起来像这样:
{ $REGION 'Documumentation'
从D7到XE2你会反复在每行开头添加一个},以
开头{$ REGION
并删除$。
之后的空格 像我说的那样,它很难看。答案 2 :(得分:0)
Documentation Insight支持一些内置区域样式(请参阅“选项”对话框)。您可以选择兼容样式,它会自动生成{$ IFDEF NoDEF} {$ REGION'xxx'} {$ ENDIF}等指令。