【问题标题】:How I can compile documented Delphi code in older Delphi versions (<2005)如何在较旧的 Delphi 版本中编译记录的 Delphi 代码 (<2005)
【发布时间】:2013-01-24 01:44:48
【问题描述】:

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

我收到编译器错误

编译器指令区域无效

这很好,因为在 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?

【问题讨论】:

    标签: delphi documentation


    【解决方案1】:

    如果去掉{$REGION} 标签,Document Insight 仍然有效,旧版本应将文档视为普通 cmets。在支持代码折叠的 IDE 版本中,您将无法再折叠文档,仅此而已。

    【讨论】:

      【解决方案2】:

      如果您必须有一个代码库在新旧 Delphi 中编译不做任何更改,则此解决方案将不起作用。

      这很丑陋,当您从旧版本的 Delphi 切换到新版本时,必须完成和撤消。

      但是,您可以来回 grep 整个项目。

      例如,从 XE2 到 D7 时,您需要转换它

      {$REGION 'Documentation'} 
      

      通过插入一个空格并删除尾随的},它看起来像这样:

      { $REGION 'Documumentation'
      

      从 D7 到 XE2,你会做相反的事情,在以

      开头的每一行的末尾添加一个 }
      {$ REGION
      

      并删除 $ 之后的空格。

      就像我说的,它很丑。

      【讨论】:

      • 另外,您可以在$ 之前插入一个句点并保持右大括号不变,从而将标签变成独立的cmets:{.$REGION 'Documentation'}{.$ENDREGION}。 Document Insight 仍然有效。
      【解决方案3】:

      Documentation Insight 支持一些内置的区域样式(请参阅选项对话框)。您可以选择兼容样式,它会自动生成 {$IFDEF NoDEF}{$REGION 'xxx'}{$ENDIF} 等指令。

      【讨论】:

      • 我在我的问题上所说的,当我使用{$IFDEF NODEF}{$REGION 'Documentation'}{$ENDIF} 时,文档洞察力不再适用于 Delphi XE2 和 XE3。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-11
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      相关资源
      最近更新 更多