views:

127

answers:

4

There is a large project, and I need to see the hierarchy of Units which each file references in it's USES clause.

ex.

                                Project Source (program.dpk)

        HelperUnit                  Forms                ThirdPartyUnit

MyUtils MyConsts MyDownload                         TPShellShock  TPWhatever 

How can I see this dependency tree of sorts? I remember there being some feature like this in one of the newer Delphi versions, but I don't remember what it was called. It may have been a plugin.

Any hints on how to do this would be great. I started writing my own program to do it but I've already wasted like 3 hours and am still working on the parser for pas files.

+3  A: 

I don't know a IDE integrated tool to do what you want, but you shall take a look at Unit Dependency Analyzer, from ModelMaker. The tool is free of charge.

jachguate
This looks promising. I'm playing around with it now. If anyone else has suggestions please keep them coming though.
Daisetsu
+3  A: 

There also is a unit dependancy analyzer built inside of GExperts. Look for the option labled "Project Dependencies". This does work from an expert within Delphi against the currently loaded project.

GExperts Project Dependancies

skamradt
+1  A: 

You've got such graphs created in an automated manner by our Open Source documentation tool, called SynProject.

It uses internal a fork of PasDoc to parse the interface part of your project units, then extract the comments to get detailed info about each class/method/function/unit. There are both unit dependencies diagrams and class hierarchy diagrams created from this data.

Then this information is merged into a whole technical documentation process, starting from Requirements, then Architecture, then Design, then Validation Plan, then Testing, then Release.

See http://synopse.info/fossil/wiki?name=SynProject

A. Bouchez
A: 

Icarus is another tool to analyzing your "uses" dependencies; it has a great feature that lists units that don't need to be in your uses clauses.

http://www.peganza.com/

It's free.

Erik Knowles