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