すべての外部依存関係を見つけるのは簡単です。プログラムを実行し、モジュール情報ウィンドウを開きます。しかし、どうすればの依存関係をすべて見つけることができますか?私はプログラムがすべてのユニットのリストを保持していることを知っています。なぜなら、私は初期化コードを1〜2回追跡してきたからです。しかし、デバッガからこのリストにアクセスする簡単な方法はありますか?私のDelphiアプリケーション内のすべてのユニットを見つける方法はありますか?
答えて
別ではなく、面倒な方法、それが含まれている、マップファイルを生成することであることができますプログラムで使用されるすべてのユニットのリスト。 How can I find all the units in my Delphi app?
あなたはPeganza Softwareから、パスカル・アナライザまたは無料限定バージョン、イカルスを見たことがありますか?彼らはモジュールが他のものをどのように使用しているかを示す「使用レポート」を作成しますので、後で情報を提供する必要があります。
マルク・
私はあなたのプロジェクト
- CTRL-SHIFT-Bで使用されているすべてのユニットのビューを取得しようとすることができ、少なくとも2つの方法を知っているが、オブジェクトブラウザを開きます。私が間違っていないなら、ここであなたは使用済みユニットのビューを得ることができます。私はこのメソッドについて完全にはわかっていないし、Delphiで検証することはできません。
- 使用Modelmaker。 Modelmakerは、すべてのあなたのユニットの依存関係のようなツリーを与えることができます。詳細については、Visualizing existing codeセクションをご覧ください。
UsgParseと呼ばれる(むしろ古い)ユーティリティがあります。プロジェクトによって参照されるすべてのユニットのツリービューを構築します。
ソースを経由してNexusDBサイト上のコピーが見つかりました: http://www.nexusdb.com/downloads/USGParse/USGParse_src.zip
GExpertsは、プロジェクトの依存関係のツールを持っています。以前使用したユニットを追跡しようとしたときに私はそれを使用しました。検索はできませんが、リストをCSVファイルにエクスポートして検索することができます。これには、使用セクションにあるものだけがリストされます。使用されていないモジュールが含まれている場合は、まだ表示されます。
私はGExpertsプロジェクトの依存関係を使用します。で
「により使用されます...」、あなたはユニットが含まれているが、誰が使用していない見ることができます。 しかし、あなたがユニットを見ることができないが、彼らが実際に呼び出さ任意のコードを持っていないときに除去することができたのuses節に含まれています。ここで
は助けます:
プロジェクトの依存関係
プロジェクトの依存関係の専門家は、あなたが特定のユニットを使用するもののユニット見ることができ、ひいてはユニットは、特定のユニットを使用しているもの。このエキスパートがアクティブになると、現在のプロジェクトのすべてのソースコードのuses節が解析され、依存関係のリストが構築されます。特定のユニットの依存関係情報を表示するには、左側のペインでそれをクリックします。右側のウィンドウには依存関係の情報が表示されます。間接依存は、特定のユニットの使用ユニットによって使用されるユニットです。
ツールバーの[更新]ボタンをクリックすると、依存関係の情報をいつでも更新できます。また、列ヘッダーをクリックしてファイルのリストを並べ替えることもできます。
alt text http://www.gexperts.org/tour/project%20dependencies.png
OTOH、あなたはまた、より詳細なレポートツールとして無料Peganza's ICARUSを使用しますが、あまりインタラクティブ...
最も簡単な方法は、プログラムをコンパイルし、コンパイラによって作成された.dcu
チェックすることです:
もこの答えを参照してください。別のディレクトリに.dcu
を作成するようにコンパイラを設定してください(例:c:\dcu
)。私はコンパイラの検索パス(.cfg
、.dof
または.bdsproject
ファイルから読み取ることができる)内のディレクトリにある.dcu
ファイルごとに.pas
を検索する簡単なユーティリティを作成しました。
Delphiデバッガは、どのユニットがモジュール(exe、dll、またはパッケージ)にコンパイルされたかを表示できます。 Modulesビュー(View | Debug Windows | Modules)でこれを見ることができます。左上のペインにあるモジュールをクリックすると、左下のペインに、そのモジュールに組み込まれているすべてのコンパイル単位が表示されます。特定のコンパイル単位が複数のソースファイル(.pasと.incファイルなど)で構成されている場合は、そのファイルも表示されます(compユニットを展開すると)。
また、プロジェクトをコンパイルするときに--dependsを渡すことによって、Delphiコンパイラに使用済みの.dcusのリストを表示させることができます。必要な.dcus(と.dcps)のリストを含む.dファイルを出力します。
MapFileStatsと組み合わせてMAPファイルを使用できます。これは、すべての依存関係を提供するのではなく、最終実行ファイルに与えるコードとリソースの量を示します。
あなたは依存関係がありますが、ほとんど使用しません。また、すべてのものにキッチンシンクを加えた「太った豚」ユニットを見つけます。
FWIWは、依存性を減らし、豚を排除するだけでは実行可能なサイズには有益ではありません。新しいバージョンにアップグレードするときには有益です。
- 1. アプリケーション内のオブジェクトを見つける方法はありますか?
- 2. Delphi xe、ユニットdbExceptが見つかりません。 Delphi 2009にありました
- 3. バインディングフォームですべてのシンボルを見つける方法はありますか?
- 4. 円内のすべてのブロックをグリッド内で見つける方法はありますか?
- 5. いくつかのアプリケーションのために内部ストレージ内のすべてのファイルを見つける方法は?
- 6. PowerShellにディレクトリ内のすべてのファイルを見つける方法はありますか?
- 7. python protobuff内のすべてのメッセージを見つける方法
- 8. div内のすべてのリンクを見つける方法
- 9. コントロールのオーナースレッドを見つける方法はありますか?
- 10. 1つのメインドメインの既存のサブドメインをすべて見つける方法はありますか?
- 11. 私のソリューションですべてのビルドイベントを見つける方法
- 12. mainBundle NSDictionaryから私のアプリケーションのフルバージョン番号を見つける方法はありますか?
- 13. 私のプロパティでXamarin.Android v4サポートを見つける方法はありますか?
- 14. pythonの関数のすべてのkwargをcliから見つける方法はありますか?
- 15. jQueryを使用して値のリストですべてのオプションを見つける方法はありますか?
- 16. ファイル内のすべてのパラメータを見つけて印刷する方法は?
- 17. Delphi用の単純なテキスト差分ユニットはありますか?
- 18. 有向グラフのノードへのすべての着信エッジを見つける方法はありますか?
- 19. カスタムmongo dbpathを見つける方法はありますか?
- 20. Herokuでメモリリークを見つける方法はありますか?
- 21. リスト内の要素のすべてのシーケンスを見つける方法は?
- 22. EclipseでJavaのすべての同期を同じモニターで見つける方法はありますか?
- 23. 権限のないすべての.gitメッセージを見つける方法はありますか?
- 24. JMSトピックのすべてのサブスクライバを見つける方法はありますか?
- 25. svnでファイルのすべてのコピーを見つける方法はありますか?
- 26. Pythonで正規表現にマッチするものをすべて見つける方法はありますか?
- 27. preg_match()はテーブル内のすべての値を見つけるか?
- 28. SVNブランチから作成されたすべてのブランチを見つける方法はありますか?
- 29. SunOSのC++アプリケーションにメモリリークがあります。それを見つける方法?
- 30. タブホスト内のアクティビティからタブホスト内のビューを見つける方法はありますか?
今日新しいことを学びました: '--depends' :)私はいつも.dcuディレクトリをきれいにしてから、コンパイル後に.dcuディレクトリの' dir/b'を実行しました。デバッガのトリックもきちんとしています! –
--dependsスイッチについて知っているコンパイラのバージョンは? – dummzeuch
私はいつも少し頭脳を使うことができます:-)この素晴らしい答えに感謝します。 –