2009-04-08 5 views
10

Il est assez facile de trouver toutes vos dépendances externes. Il suffit de lancer le programme et ouvrir la fenêtre d'information sur les modules. Mais comment puis-je trouver toutes mes dépendances internes? Je sais que le programme conserve une liste de toutes les unités, car j'ai parcouru le code d'initialisation une fois ou deux. Mais existe-t-il un moyen facile d'accéder à cette liste à partir du débogueur?Comment puis-je trouver toutes les unités dans mon application Delphi?

Répondre

4

Avez-vous regardé Analyzer Pascal ou la version gratuite limitée, Icare, de Peganza Software? Ils créeront des "rapports d'utilisation" vous indiquant quel module utilise ce que les autres utilisent, ce qui devrait vous donner l'information que vous recherchez.

Marc

3

Je connais au moins deux façons dont vous pouvez essayer d'obtenir une vue de toutes les unités utilisées dans votre projet

  1. CTRL-MAJ-B ouvre le navigateur d'objets. Si je ne me trompe pas, ici vous pouvez avoir une vue des unités utilisées. Je ne suis pas entièrement sûr de cette méthode et Delphi n'est pas disponible pour la vérifier.
  2. utilisation Modelmaker; Modelmaker peut vous donner une vue arborescente de toutes vos dépendances d'unités. Regardez la section Visualizing existing code pour plus d'informations.
4

GExperts a un outil Dépendances d'un projet. Je l'ai déjà utilisé en essayant de retrouver les unités utilisées. Vous ne pouvez pas effectuer de recherche mais vous pouvez exporter la liste dans un fichier CSV et y effectuer une recherche. Ceci indique également seulement ce qui est dans la section uses. Si vous avez inclus un module qui n'est pas utilisé, il apparaîtra toujours.

6

J'utilise les GExperts Dépendances d'un projet.
Avec le « Utilisé par ... », vous pouvez voir les unités incluses mais non utilisés par personne. Mais vous ne pouvez pas voir l'unité incluse dans les clauses uses qui pourraient être supprimées lorsqu'elles n'ont aucun code réellement appelé.

est ici l'aide:


Dépendances projet

L'expert de la dépendance de projet vous permet de voir quelles unités une unité particulière utilise, et à son tour ce que les unités utilisent une unité particulière. Lorsque cet expert est activé, il analyse toutes les clauses du code source du projet en cours et construit une liste de dépendances. Pour afficher les informations de dépendance pour une unité particulière, cliquez dessus dans le volet de gauche. Le volet de droite contiendra les informations de dépendance. Les dépendances indirectes sont des unités utilisées par les unités utilisées d'une unité particulière.

Vous pouvez actualiser les informations de dépendance à tout moment en cliquant sur le bouton d'actualisation de la barre d'outils et vous pouvez trier la liste des fichiers en cliquant sur les en-têtes de colonnes.
alt text http://www.gexperts.org/tour/project%20dependencies.png


OTOH, vous pouvez également utiliser gratuitement Peganza's ICARUS comme outil de reporting plus détaillé mais moins interactif ...

1

La meilleure façon est de compiler le programme et vérifier que .dcu a été créé par le compilateur. Assurez-vous de configurer le compilateur pour créer .dcu dans un répertoire distinct, par exemple c:\dcu. J'ai créé l'utilité simple qui recherche .pas pour chaque fichier .dcu dans les répertoires qui sont dans un chemin de recherche de compilateur (qui peut être lu du fichier .cfg, .dof ou .bdsproject).

25

Le débogueur Delphi peut vous montrer quelles unités ont été compilées dans un module (exe, dll ou package). Vous pouvez le voir dans la vue Modules (View | Debug Windows | Modules). Cliquez sur un module dans le volet supérieur gauche et le volet inférieur gauche affichera toutes les unités de compilation qui ont été intégrées dans ce module. Si une unité de compilation particulière était constituée de plusieurs fichiers source (par exemple, un fichier .pas et un fichier .inc), cela s'affichera également (lorsque vous développez l'unité de compilation).

Alternativement, vous pouvez demander au compilateur Delphi de vous montrer une liste de fichiers .dcus en passant --depends lorsque vous compilez un projet. Il produira un fichier .d avec une liste des fichiers .dcus (et .dcps) requis.

+5

J'ai appris quelque chose de nouveau aujourd'hui: '--depends' :) J'ai toujours nettoyé le répertoire .dcu, puis j'ai fait un' dir/b' du répertoire .dcu après une compilation. L'astuce du débogueur est soignée aussi! –

+1

Quelles versions du compilateur connaissent le commutateur --depends? – dummzeuch

+0

Je pourrais toujours utiliser un peu plus de cerveau :-) Merci pour cette réponse géniale. –

1

Vous pouvez utiliser un fichier MAP en conjonction avec MapFileStats, cela ne vous donnera pas seulement toutes vos dépendances, mais la quantité de code (et de ressources) qu'ils contribuent dans l'exécutable final.

Utile pour repérer des unités dont vous avez des dépendances, mais qui en utilisent peu, ainsi que pour repérer des unités de type «gros cochon», qui prennent tout avec l'évier de cuisine. FWIW, en réduisant les dépendances et en éliminant les porcs, n'est pas seulement bénéfique pour la taille de l'exécutable, mais il est également bénéfique à l'avenir de passer à une nouvelle version.

Questions connexes