8

ドキュメント インサイト機能を使用して 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

REGIONDelphi IDE が Galileo (Delphi 2005) に変更されたときに予約語が導入されたため、問題はありません。

したがって、今のところ回避策として、Delphi 5 のコードを XE3 にコンパイルするために、この構文を使用しています。

 {$IFDEF NODEF}{$REGION 'Documentation'}{$ENDIF}
 ///    <summary>
 ///      This is a sample text 
 ///    </summary>
 {$IFDEF NODEF}{$ENDREGION}{$ENDIF}
 TFoo=class
   procedure Tick;
 end;

しかし、そのようなコードを使用すると、Delphi XE2 および XE3 で Documentation Insight が機能しなくなりました。

問題は、新しい Delphi バージョンのドキュメント インサイトに影響を与えることなく、古いバージョンの Delphi で文書化された Delphi コードをコンパイルするにはどうすればよいかということです。

4

3 に答える 3

7

タグを削除し{$REGION}ても、Document Insightは引き続き機能し、古いバージョンではドキュメントを通常のコメントとして扱う必要があります。コード折り畳みをサポートするIDEバージョンでは、ドキュメントを折りたたむことができなくなります。それだけです。

于 2013-01-24T02:04:27.323 に答える
5

古い Delphi と新しい Delphi で変更なしでコンパイルできる 1 つのコード ベースが必要な場合、このソリューションは機能しません。

それは見苦しく、Delphi の古いバージョンから新しいバージョンへと行ったり来たりするときに、実行したり元に戻したりする必要があります。

ただし、プロジェクト全体を前後に grep することはできます。

たとえば、XE2 から D7 に移行する場合、これを変換します。

{$REGION 'Documentation'} 

スペースを挿入して末尾の } を削除すると、次のようになります。

{ $REGION 'Documumentation'

D7 から XE2 に移行すると、逆に } で始まるすべての行の末尾に } を追加します。

{$ REGION

$ の後のスペースを削除します。

おっしゃるとおり、醜いです。

于 2013-01-24T02:13:53.503 に答える
0

Documentation Insight は、いくつかの組み込み領域スタイルをサポートしています ([オプション] ダイアログを参照してください)。互換性のあるスタイルを選択すると、{$IFDEF NoDEF}{$REGION 'xxx'}{$ENDIF} のようなディレクティブが自動生成されます。

于 2013-02-17T15:26:08.827 に答える