如何在旧的Delphi版本中编译记录的Delphi代码(< 2005)

时间:2013-01-24 01:44:48

标签: delphi documentation

我正在使用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?

3 个答案:

答案 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}等指令。