Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2014年07月03日] [更新 2014年07月03日] Delphi 一般・その他
IDE からの文字列の検索
動作確認等 Windows 7 U64(SP1) + Delphi XE(UP1) Pro
[整理番号 - 0220]







01_IDE から文字列を検索 ( 未定義の識別子の検索にも利用可能 )


例えばコード内の EIdHTTPProtocolException で未定義の識別子のエラーが発生したとします。
これが、自分自身が定義したものではないとします。Delphi のどこかのユニットで定義されているものとします。
コード補完機能を利用すれば、このようなエラーの発生をあらかじめ防止できることがあります。
ネット上のコードをコピーしたとか、他のユニットのコードからコピーした場合に発生するかも知れません。

このような場合も含めて、指定のディレクトリのファイル内を、IDE から検索する方法です。
まず、メニューの [検索] から [ファイル検索] を選択します。



図1

下図のダイアログが現れます。ここで、検索する文字列、検索するディレクトリを設定します。
設定したら [OK] ボタンをクリックします。
検索文字列には、正規表現も使用できます。
検索対象のディレクトリは複数指定できます。[ディレクトリ] の右側の 2 つのアイコン内、右側のアイコンをクリックして設定します。


図2

検索中は、次のダイアログが表示されます。


図3

検索が終了すると、メッセージのペインに一覧が表示されます。
EIdHTTPProtocolException が IdHTTP.pas で定義されていることが分かります。
したがって、EIdHTTPProtocolException を使用するには、uses に IdHTTP を追加すれば利用できることになります。当然ですが、uses するユニットにはパスが通っている必要があります。また、対象の定数名等は、interface 部になけれぱ利用できません。更に、コンポーネント (クラス) のメンバーの場合は、アクセス可能な public 部や published 部にないと未定義のエラーになります。

該当するメッセージ部分をダブルクリックすると、そのユニットが表示されます。

多くのテキストエディタには、このような検索機能が実装されています。筆者は検索用プログラムを自作して、主にそれを使用しています。

もし、ディスク内を全て検索しても見つからなければ、ネット上で検索することになります。それでも見つからない場合は...、筆者には分かりません。
もちろん、検索対象の Delphi のバージョンに実装されていない定数名、コンポーネント名、クラス名、プロパティ名、メソッド名、関数名、レコード型等の名前は見つかりません。



図4