Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#28

Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten

  Alt 2. Jun 2006, 15:55
Einen Letzen bevor ich nun Heim geh.

Ihr kennt sicherlich alle folgendes Project1.dpr und Unit1.dpr:
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
Wenn man nun die Unit-Abhänigkeiten der RTL und VCL von Delphi an diesem Beispiel darstellt,
kann man sehen, wie "viel" eigentlich in so einem "leeren" Delphi Projekt drin steckt.
(Und warum die Project1.exe so groß ist und die non-vcl Projekte so klein sind.)


(Bild anklicken um die 1027x768 Version zu sehen)

Mit dem folgendem Dot File kann sich jeder die "große" Version des Diagramms erzeugen:
Code:
dot -Tjpg -oProject1.jpg Project1.dot
oder
Code:
dot -Tpng -oProject1.png Project1.dot
Hier ist die Project1.dot:
Code:
DiGraph Uses {
  // dot file created by unit dependency scanner v1.0
  // programmed by MaBuSE, member of [url]www.delphipraxis.net[/url]
  // [url]http://www.delphipraxis.net/topic84612_freware+programm+zur+ermittlung+von+unitabhaengigkeiten.html[/url]
  graph [ratio="0.7"];
  "Project1.dpr" [shape=box, style=filled, color=lightgray];
  "Project1.dpr" -> "Forms.pas";
  "Project1.dpr" -> "Unit1.pas";
  "Forms.pas" -> "Messages.pas";
  "Forms.pas" -> "Windows.pas";
  "Forms.pas" -> "SysUtils.pas";
  "Forms.pas" -> "Classes.pas";
  "Forms.pas" -> "Graphics.pas";
  "Forms.pas" -> "Menus.pas";
  "Forms.pas" -> "Controls.pas";
  "Forms.pas" -> "Imm.pas";
  "Forms.pas" -> "ActnList.pas";
  "Forms.pas" -> "MultiMon.pas";
  "Forms.pas" -> "HelpIntfs.pas";
  "Forms.pas" -> "Messages.pas";
  "Forms.pas" -> "Windows.pas";
  "Forms.pas" -> "SysUtils.pas";
  "Forms.pas" -> "Classes.pas";
  "Forms.pas" -> "Graphics.pas";
  "Forms.pas" -> "Menus.pas";
  "Forms.pas" -> "Controls.pas";
  "Forms.pas" -> "Imm.pas";
  "Forms.pas" -> "ActnList.pas";
  "Forms.pas" -> "MultiMon.pas";
  "Forms.pas" -> "HelpIntfs.pas";
  "Forms.pas" -> "ActiveX.pas";
  "Forms.pas" -> "Math.pas";
  "Forms.pas" -> "Printers.pas";
  "Forms.pas" -> "Consts.pas";
  "Forms.pas" -> "RTLConsts.pas";
  "Forms.pas" -> "CommCtrl.pas";
  "Forms.pas" -> "FlatSB.pas";
  "Forms.pas" -> "StdActns.pas";
  "Forms.pas" -> "WinHelpViewer.pas";
  "Forms.pas" -> "Themes.pas";
  "Messages.pas" -> "Windows.pas";
  "Windows.pas" -> "Types.pas";
  "SysUtils.pas" -> "Windows.pas";
  "SysUtils.pas" -> "Types.pas";
  "SysUtils.pas" -> "SysConst.pas";
  "Graphics.pas" -> "Windows.pas";
  "Graphics.pas" -> "Windows.pas";
  "Graphics.pas" -> "SysUtils.pas";
  "Graphics.pas" -> "Classes.pas";
  "Graphics.pas" -> "Windows.pas";
  "Graphics.pas" -> "SysUtils.pas";
  "Graphics.pas" -> "Classes.pas";
  "Menus.pas" -> "Windows.pas";
  "Menus.pas" -> "SysUtils.pas";
  "Menus.pas" -> "Classes.pas";
  "Menus.pas" -> "Contnrs.pas";
  "Menus.pas" -> "Messages.pas";
  "Menus.pas" -> "Graphics.pas";
  "Menus.pas" -> "ImgList.pas";
  "Menus.pas" -> "ActnList.pas";
  "Menus.pas" -> "Windows.pas";
  "Menus.pas" -> "SysUtils.pas";
  "Menus.pas" -> "Classes.pas";
  "Menus.pas" -> "Contnrs.pas";
  "Menus.pas" -> "Messages.pas";
  "Menus.pas" -> "Graphics.pas";
  "Menus.pas" -> "ImgList.pas";
  "Menus.pas" -> "ActnList.pas";
  "Menus.pas" -> "Controls.pas";
  "Menus.pas" -> "Forms.pas";
  "Menus.pas" -> "Consts.pas";
  "Menus.pas" -> "Themes.pas";
  "Contnrs.pas" -> "SysUtils.pas";
  "Contnrs.pas" -> "Classes.pas";
  "Contnrs.pas" -> "RTLConsts.pas";
  "Contnrs.pas" -> "Math.pas";
  "Math.pas" -> "SysUtils.pas";
  "Math.pas" -> "Types.pas";
  "ImgList.pas" -> "Windows.pas";
  "ImgList.pas" -> "Classes.pas";
  "ImgList.pas" -> "Graphics.pas";
  "ImgList.pas" -> "CommCtrl.pas";
  "ImgList.pas" -> "SysUtils.pas";
  "ImgList.pas" -> "Consts.pas";
  "ImgList.pas" -> "Forms.pas";
  "ImgList.pas" -> "ActiveX.pas";
  "ActiveX.pas" -> "Messages.pas";
  "ActiveX.pas" -> "Windows.pas";
  "ActiveX.pas" -> "Messages.pas";
  "ActiveX.pas" -> "Types.pas";
  "ActiveX.pas" -> "Windows.pas";
  "ActnList.pas" -> "Classes.pas";
  "ActnList.pas" -> "Messages.pas";
  "ActnList.pas" -> "ImgList.pas";
  "ActnList.pas" -> "Contnrs.pas";
  "ActnList.pas" -> "SysUtils.pas";
  "ActnList.pas" -> "Windows.pas";
  "ActnList.pas" -> "Forms.pas";
  "ActnList.pas" -> "Menus.pas";
  "ActnList.pas" -> "Consts.pas";
  "ActnList.pas" -> "Graphics.pas";
  "ActnList.pas" -> "Controls.pas";
  "Themes.pas" -> "Windows.pas";
  "Themes.pas" -> "Classes.pas";
  "Themes.pas" -> "Messages.pas";
  "Themes.pas" -> "Graphics.pas";
  "Themes.pas" -> "UxTheme.pas";
  "Themes.pas" -> "CommCtrl.pas";
  "Themes.pas" -> "Controls.pas";
  "Themes.pas" -> "SysUtils.pas";
  "Themes.pas" -> "ComCtrls.pas";
  "UxTheme.pas" -> "Windows.pas";
  "UxTheme.pas" -> "CommCtrl.pas";
  "UxTheme.pas" -> "SyncObjs.pas";
  "SyncObjs.pas" -> "Windows.pas";
  "SyncObjs.pas" -> "Messages.pas";
  "SyncObjs.pas" -> "SysUtils.pas";
  "SyncObjs.pas" -> "Classes.pas";
  "ComCtrls.pas" -> "Messages.pas";
  "ComCtrls.pas" -> "Windows.pas";
  "ComCtrls.pas" -> "SysUtils.pas";
  "ComCtrls.pas" -> "CommCtrl.pas";
  "ComCtrls.pas" -> "Classes.pas";
  "ComCtrls.pas" -> "Controls.pas";
  "ComCtrls.pas" -> "Forms.pas";
  "ComCtrls.pas" -> "Menus.pas";
  "ComCtrls.pas" -> "Graphics.pas";
  "ComCtrls.pas" -> "StdCtrls.pas";
  "ComCtrls.pas" -> "RichEdit.pas";
  "ComCtrls.pas" -> "ToolWin.pas";
  "ComCtrls.pas" -> "ImgList.pas";
  "ComCtrls.pas" -> "ExtCtrls.pas";
  "ComCtrls.pas" -> "ListActns.pas";
  "ComCtrls.pas" -> "ShlObj.pas";
  "StdCtrls.pas" -> "Messages.pas";
  "StdCtrls.pas" -> "Windows.pas";
  "StdCtrls.pas" -> "SysUtils.pas";
  "StdCtrls.pas" -> "Classes.pas";
  "StdCtrls.pas" -> "Controls.pas";
  "StdCtrls.pas" -> "Forms.pas";
  "StdCtrls.pas" -> "Menus.pas";
  "StdCtrls.pas" -> "Graphics.pas";
  "StdCtrls.pas" -> "Consts.pas";
  "StdCtrls.pas" -> "RTLConsts.pas";
  "StdCtrls.pas" -> "ActnList.pas";
  "StdCtrls.pas" -> "Themes.pas";
  "RichEdit.pas" -> "Messages.pas";
  "RichEdit.pas" -> "Windows.pas";
  "ToolWin.pas" -> "Windows.pas";
  "ToolWin.pas" -> "Messages.pas";
  "ToolWin.pas" -> "Classes.pas";
  "ToolWin.pas" -> "Controls.pas";
  "ToolWin.pas" -> "Forms.pas";
  "ToolWin.pas" -> "SysUtils.pas";
  "ExtCtrls.pas" -> "Messages.pas";
  "ExtCtrls.pas" -> "Windows.pas";
  "ExtCtrls.pas" -> "SysUtils.pas";
  "ExtCtrls.pas" -> "Classes.pas";
  "ExtCtrls.pas" -> "Controls.pas";
  "ExtCtrls.pas" -> "Forms.pas";
  "ExtCtrls.pas" -> "Menus.pas";
  "ExtCtrls.pas" -> "Graphics.pas";
  "ExtCtrls.pas" -> "StdCtrls.pas";
  "ExtCtrls.pas" -> "Messages.pas";
  "ExtCtrls.pas" -> "Windows.pas";
  "ExtCtrls.pas" -> "SysUtils.pas";
  "ExtCtrls.pas" -> "Classes.pas";
  "ExtCtrls.pas" -> "Controls.pas";
  "ExtCtrls.pas" -> "Forms.pas";
  "ExtCtrls.pas" -> "Menus.pas";
  "ExtCtrls.pas" -> "Graphics.pas";
  "ExtCtrls.pas" -> "StdCtrls.pas";
  "ExtCtrls.pas" -> "Consts.pas";
  "ExtCtrls.pas" -> "Dialogs.pas";
  "ExtCtrls.pas" -> "Themes.pas";
  "Dialogs.pas" -> "Windows.pas";
  "Dialogs.pas" -> "Messages.pas";
  "Dialogs.pas" -> "SysUtils.pas";
  "Dialogs.pas" -> "CommDlg.pas";
  "Dialogs.pas" -> "Printers.pas";
  "Dialogs.pas" -> "Classes.pas";
  "Dialogs.pas" -> "Graphics.pas";
  "Dialogs.pas" -> "Controls.pas";
  "Dialogs.pas" -> "Forms.pas";
  "Dialogs.pas" -> "StdCtrls.pas";
  "Dialogs.pas" -> "Windows.pas";
  "Dialogs.pas" -> "Messages.pas";
  "Dialogs.pas" -> "SysUtils.pas";
  "Dialogs.pas" -> "CommDlg.pas";
  "Dialogs.pas" -> "Printers.pas";
  "Dialogs.pas" -> "Classes.pas";
  "Dialogs.pas" -> "Graphics.pas";
  "Dialogs.pas" -> "Controls.pas";
  "Dialogs.pas" -> "Forms.pas";
  "Dialogs.pas" -> "StdCtrls.pas";
  "Dialogs.pas" -> "ExtCtrls.pas";
  "Dialogs.pas" -> "Consts.pas";
  "Dialogs.pas" -> "Dlgs.pas";
  "Dialogs.pas" -> "Math.pas";
  "CommDlg.pas" -> "Windows.pas";
  "CommDlg.pas" -> "Messages.pas";
  "CommDlg.pas" -> "ShlObj.pas";
  "ShlObj.pas" -> "Windows.pas";
  "ShlObj.pas" -> "ActiveX.pas";
  "ShlObj.pas" -> "CommCtrl.pas";
  "ShlObj.pas" -> "ShellAPI.pas";
  "ShlObj.pas" -> "RegStr.pas";
  "ShlObj.pas" -> "Messages.pas";
  "ShlObj.pas" -> "WinInet.pas";
  "ShlObj.pas" -> "UrlMon.pas";
  "ShellAPI.pas" -> "Windows.pas";
  "WinInet.pas" -> "Windows.pas";
  "UrlMon.pas" -> "Windows.pas";
  "UrlMon.pas" -> "ActiveX.pas";
  "Printers.pas" -> "Windows.pas";
  "Printers.pas" -> "WinSpool.pas";
  "Printers.pas" -> "SysUtils.pas";
  "Printers.pas" -> "Classes.pas";
  "Printers.pas" -> "Graphics.pas";
  "Printers.pas" -> "Forms.pas";
  "Printers.pas" -> "Consts.pas";
  "WinSpool.pas" -> "Windows.pas";
  "ListActns.pas" -> "Classes.pas";
  "ListActns.pas" -> "Controls.pas";
  "ListActns.pas" -> "ActnList.pas";
  "ListActns.pas" -> "ImgList.pas";
  "ListActns.pas" -> "SysUtils.pas";
  "ListActns.pas" -> "ComCtrls.pas";
  "ListActns.pas" -> "Consts.pas";
  "ListActns.pas" -> "RTLConsts.pas";
  "Imm.pas" -> "Windows.pas";
  "HelpIntfs.pas" -> "SysUtils.pas";
  "HelpIntfs.pas" -> "Classes.pas";
  "HelpIntfs.pas" -> "Contnrs.pas";
  "HelpIntfs.pas" -> "Windows.pas";
  "HelpIntfs.pas" -> "RTLConsts.pas";
  "HelpIntfs.pas" -> "Contnrs.pas";
  "HelpIntfs.pas" -> "RTLConsts.pas";
  "FlatSB.pas" -> "Windows.pas";
  "StdActns.pas" -> "SysUtils.pas";
  "StdActns.pas" -> "Classes.pas";
  "StdActns.pas" -> "ActnList.pas";
  "StdActns.pas" -> "StdCtrls.pas";
  "StdActns.pas" -> "Forms.pas";
  "StdActns.pas" -> "Dialogs.pas";
  "StdActns.pas" -> "Windows.pas";
  "StdActns.pas" -> "Messages.pas";
  "StdActns.pas" -> "Consts.pas";
  "StdActns.pas" -> "Clipbrd.pas";
  "StdActns.pas" -> "StrUtils.pas";
  "StdActns.pas" -> "ShellAPI.pas";
  "Clipbrd.pas" -> "Windows.pas";
  "Clipbrd.pas" -> "Messages.pas";
  "Clipbrd.pas" -> "Classes.pas";
  "Clipbrd.pas" -> "Graphics.pas";
  "Clipbrd.pas" -> "Windows.pas";
  "Clipbrd.pas" -> "Messages.pas";
  "Clipbrd.pas" -> "Classes.pas";
  "Clipbrd.pas" -> "Graphics.pas";
  "Clipbrd.pas" -> "SysUtils.pas";
  "Clipbrd.pas" -> "Forms.pas";
  "Clipbrd.pas" -> "Consts.pas";
  "StrUtils.pas" -> "SysUtils.pas";
  "StrUtils.pas" -> "Types.pas";
  "StrUtils.pas" -> "Windows.pas";
  "WinHelpViewer.pas" -> "Classes.pas";
  "WinHelpViewer.pas" -> "HelpIntfs.pas";
  "WinHelpViewer.pas" -> "SysUtils.pas";
  "WinHelpViewer.pas" -> "Windows.pas";
  "WinHelpViewer.pas" -> "HelpIntfs.pas";
  "WinHelpViewer.pas" -> "SysUtils.pas";
  "Unit1.pas" -> "Windows.pas";
  "Unit1.pas" -> "Messages.pas";
  "Unit1.pas" -> "SysUtils.pas";
  "Unit1.pas" -> "Variants.pas";
  "Unit1.pas" -> "Classes.pas";
  "Unit1.pas" -> "Graphics.pas";
  "Unit1.pas" -> "Controls.pas";
  "Unit1.pas" -> "Forms.pas";
  "Unit1.pas" -> "Dialogs.pas";
  "Variants.pas" -> "Types.pas";
  "Variants.pas" -> "SysUtils.pas";
  "Variants.pas" -> "Windows.pas";
  "Variants.pas" -> "SysConst.pas";
  "Variants.pas" -> "VarUtils.pas";
  "VarUtils.pas" -> "SysUtils.pas";
  "VarUtils.pas" -> "Types.pas";
  "VarUtils.pas" -> "SysConst.pas";
  "VarUtils.pas" -> "Windows.pas";
}
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat