如何在Delphi应用程序中找到所有单元?

Mas*_*ler 10 delphi debugging

找到所有外部依赖项很容易.只需运行程序并打开模块信息窗口即可.但是我怎样才能找到所有内部依赖项?我知道程序会保留所有单元的列表,因为我已经在初始化代码中跟踪了一两次.但有没有简单的方法从调试器访问此列表?

Chr*_*sik 25

Delphi调试器可以显示哪些单元被编译成模块(exe,dll或包).您可以在Modules视图中查看(View | Debug Windows | Modules).单击左上窗格中的模块,左下窗格将显示该模块中内置的所有编译单元.如果特定的编译单元由多个源文件(即.pas和.inc文件)组成,那么也会显示(当您展开comp单元时).

或者,您可以让Delphi编译器在编译项目时通过传递--depends向您显示已使用的.dcus列表.它将输出一个.d文件,其中包含所需的.dcus(和.dcps)列表.

  • 今天学到了一些东西:`--dends` :)我总是清理.dcu目录,然后在编译后执行.dcu目录的`dir/b`.调试器技巧也很整洁! (5认同)

Fra*_*ois 6

我使用GExperts项目依赖项.
使用"Used By ...",您可以看到包含但未被任何人使用的单位.但是你看不到包含在use子句中的单元,当它们没有任何实际调用的代码时可以删除.

这是帮助:


项目依赖性

项目依赖性专家使您能够查看特定单位使用的单位,以及使用特定单位的单位.激活此专家后,它会解析当前项目的所有使用子句的源代码,并构建依赖项列表.要查看特定单元的依赖关系信息,请在左窗格中单击它.右侧窗格将包含依赖项信息.间接依赖性是特定单位的使用单位使用的单位.

您可以通过单击工具栏上的刷新按钮随时刷新依赖关系信息,也可以通过单击列标题对文件列表进行排序.
alt text http://www.gexperts.org/tour/project%20dependencies.png


OTOH,您也可以免费使用Peganza的ICARUS作为更详细的报告工具,但交互性较差......


dum*_*uch 6

另一种相当麻烦的方法是生成一个映射文件,它包含程序中使用的所有单元的列表.

另见这个答案: 我怎样才能找到我的Delphi应用程序中的所有单元?