拡張構文 uses_end / end_uses
102 uses_end 動作確認 Delphi2007 更新日 2010/07/04(日)

Delphi で使われる言語は
Delphi 言語と呼ばれています。

以前は Object Pascal と呼ばれていました。
私は Delphi Pascal と呼びたい気もしています。

その言語で使われる uses は次のようになります。

    uses Unit1, Unit2, Unit3;

こういう記述では、Unitをコメントアウトする事がちょっと手間です。

どれかのUnitをコメントアウトした場合は、こう書くのでしょうか?
    uses {Unit1,} Unit2, Unit3;
    uses Unit1, {Unit2,} Unit3;
    uses Unit1, Unit2{, Unit3};

特にUnit3の場合がコメントアウトしにくいですね。
それに、括弧でくくるコメントアウトは
ユニットの使用、不使用を試すような
こういう場面には使い勝手がよくありません。

行コメントアウトの方が楽です。

    uses
    //  Unit1,
      Unit2,
    //  Unit3;

このような使い方は
Unit1やUnit2の場合はコメントアウト可能ですが、
Unit3の場合は使えません。

並び替えにしても、行コピーなどで入れ替えすることはできません。

そこで拡張構文 uses_end を使いましょう。

    uses
      Unit1,
      Unit2,
      Unit3,
    uses_end;

こうすると、Unit1 Unit2 Unit3 どれもが並び替え配置や行コメントアウトが容易です。

しかし、この拡張構文はどのように実装すればいいのでしょうか?

ここで発想の転換。uses_end.pas という空のユニットを実装しておけばいい。というものです。

このような実装でOKです。
────────────────────
unit uses_end;
interface
implementation
end.
────────────────────
uses_end.pasという名前で保存してください。

これだと同じユニットは
interface と implementation 双方の uses できないので
困るかもしれません。

    interface

    uses
      Unit1,
      Unit2,
    uses_end;

    implementation

    uses
      Unit3,
      Unit4,
    end_uses;

uses_endと同じように、end_usesを実装してしまうとよいです。