2009-04-18 14 views
3

ユニットファイルで有用なRegionコンパイラ指令を使用したい場合、以前のバージョンのDelphiでこれらのユニットを使用できないようにするにはどうすればよいでしょうか? 「まともな」アプローチではないようです。 (希望のIDEバージョンはDelphi 7です)Delphi地域コンパイラ指令 - 下位互換ユニットファイル?

メソッド定義ヘルプとバージョン履歴コメントを隠す/表示するリージョンがあるのは好きですが、リージョンディレクティブを他のコンパイラディレクティブで囲む必要があります。リージョンコンパイラ指令の「クリーン」。

リージョンをサポートしていないバージョンのDelphiを使用している場合は、すべてのRegion/EndRegionディレクティブをコメントアウトするようにプリプロセッサを記述することができます。

私は100%Delphi 2009に切り替えていないので、複数のIDEバージョンをサポートする必要があります。

答えて

9

D7は{$ REGION}や{$ ENDREGION}をコピーしたくないと思いますか?私はD2007/9しかインストールされておらず、確認できません。

これを試してみてください:予想通り

{$IFDEF undef}{$REGION 'bla'}{$ENDIF} 
//some code 
{$IFDEF undef}{$ENDREGION}{$ENDIF} 

D2009エディタはリージョンを作成します。 'undef'が定義されていない場合、D7は$ REGION/$ ENDREGIONを無視する必要があります。

+1

+1。コードやライブテンプレートを使用して作成された1行に入れても、これはクリーンさを損なうものでもなく、書き込む努力もありません。 – mghie

+0

これは機能します...元の質問に記載されているように、答えとしてマークします。私の本当の答えは、今は地域を削除し、時間が許す限り2009年にすべてを切り替えることです。 –

0

このような機能を提供するいくつかのDelphi(7)エディタ拡張コンポーネントがあります。私はGExpertsだと思います。

コードに問題がない場合は、{$ I}を使用して大きなファイルを分割することを検討してください。

+0

...またはユニットを複数のユニットに分割するだけです! $ INCLUDEディレクティブについては、私の実験では$ Delphi IDEでうまく動作しません。たとえば、コードナビゲータには、コードをインクルードされたファイルで参照する問題があります。コンパイラには問題ありませんが、Delphi IDEでは問題ありません。逆に、Lazarusはいくつかの$ INCLUDEdファイルを使用しても問題はなく、通常の.pasファイルと同じように扱います。 –