![]() |
Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,
ich habe heute mal schnell ein Programm geschrieben, das die Abhängigkeiten der Units in einem Delphi Programm ermittelt und diese dann darstellt. Das Programm hat 2 Memo Felder. In dem linken Memo werden alle verwendete Units des Projektes aufgelistet. Units, die zu Delphi gehören, werden mit einem vorgestellten * gekennzeichnet. (Die Dateien von Delphi7 im $(DELPHI)\lib Verzeichnis sind in der "DelphiLib.list" Datei aufgelistet, die vom Programm beim Start eingelesen wird.) Units, zu denen kein Quelltext gefunden wurde, werden mit einem vorgestellten # gekennzeichnet. In dem rechten Fenster werden die Abhängigkeiten in folgender Form dargestellt:
Code:
Dieses Format kann auch durch Graphvis (
"Project1.dpr" -> "Unit1.pas";
"Project1.dpr" -> "Unit2.pas"; "Project1.dpr" -> "Unit3.pas"; "Unit1.pas" -> "Unit2.pas"; "Unit1.pas" -> "Unit3.pas"; "Unit2.pas" -> "Unit1.pas"; ![]() ("dot.exe" und einige von dot.exe benötigte dll's liegen dem unitscanner bei.) Anleitung zur Nutzung des Programmes:
Da ich vom 06.06.06 bis 07.07. im Urlaub bin, kann ich erst ab 10.07. antworten. Viel Spaß ReleaseNotes:
|
Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
und wo ist das Programm?
Gruß onlinekater |
Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
Zitat:
Das Program könnte ich nämlich gut gebrauchen. Gruß Igotcha |
Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
Zitat:
Ich bekomme leider immer einen Fehler beim Anhängen des Attachments. Das hatte ich schon öfter, aber das sollte morgen früh aber wieder gehen :-) Zitat:
|
Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
Zitat:
|
Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
Nette Software. Gefällt mit gut.
Mfg Tobi |
Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
Hi MaBuSe,
gefällt mir auch gut. Wenn ich alle 3 Optionen anhake bekomme ich aber leider nichts angezeigt bei "call dot", das jpeg wird aber erzeugt. Wenn ich "with no source" ausschalte, ist's OK. Iss zwar kein Fehler von Deinem Prog, aber vielleicht hilft's. |
Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
Zitat:
(Ein Projekt von mir hatte ca. 100 Units, das jpg war ca 25000 Pixel breit. Die linke obere Ecke ist dann in der Regel weiß :-) ) Versuche mal zu scrollen bzw zu verkleinern. Es freut mich das das Programm Euch gefällt. Wenn ich wieder da bin, erweitere ich das Programm noch etwas. (Es werden im Moment z.B. noch keine include Dateien ausgewertet {$I Datei.inc} ) |
Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
ich hab jetz au grad alles angehakt wo en Haken dran iss.. des geht ewig mit dem JPEG erstellen... könnte man da nich en Fortschrittsbalken oder so reinmachen, damit man weis ob man schnell en Kaffee trinken gehn kann?(Mein dauert jetzt schon 2 Minuten :? )
|
Re: Freware: Programm zur Ermittlung von Unit-Abhängigkeiten
Zitat:
Falls die weg sein sollte, stimmt was nicht. (evtl ist wegen eines Fehlers kein jpg erzeugt worden.) Ich habe das ganze in einer schnellen "quick and dirty" Methode geschrieben. Ich kann nicht ausschliessen, dass noch Fehler enthalten sind. Einen Fortschrittsbalken kann ich Dir nicht bieten, da ich "nur" ein externes Programm zur Erstellung aufrufe:
Code:
"temp.dot" enhällt den Inhalt des rechten Memos.
dot -Tjpg -otemp.jpg temp.dot
"temp.jpg" wird dann durch "dot.exe" erstellt. Falls "dot.exe" beendet und die "temp.jpg" nicht erstellt wird, wartet das Programm endlos. Deshalb habe ich den Cancel Button eingebaut. ;-) Hier der Quellcode des Buttons:
Delphi-Quellcode:
Ich hoffe diese Infos helden Dir.
...
procedure TForm1.btnDotClick(Sender: TObject); begin if Memo2.Lines.Count = 0 then exit; btnDot.enabled := false; btnCancel.Visible := True; if fileexists('temp.jpg') then begin if not DeleteFile('temp.jpg') then begin MessageDlg('Can''t delete file "temp.jpg".', mtError, [mbCancel], 0); btnDot.Enabled := True; btnCancel.Visible := False; exit; end; end; StatusBar1.SimpleText := ' save temp dot file'; Memo2.Lines.SaveToFile('temp.dot'); StatusBar1.SimpleText := ' create jpg from dot file'; if not fileexists(StartPath+'dot.exe') then begin MessageDlg('Can''t find file "'+StartPath+'dot.exe".', mtError, [mbCancel], 0); btnDot.Enabled := True; btnCancel.Visible := False; exit; end; shellapi.ShellExecute(Form1.Handle, 'open', PChar(StartPath+'dot.exe'), '-Tjpg -otemp.jpg temp.dot', '.', SW_SHOWNORMAL); StatusBar1.SimpleText := ' wait for jpg file'; while not (fileexists('temp.jpg') or myTerminate) do begin Application.ProcessMessages; end; StatusBar1.SimpleText := ' view jpg file'; shellapi.ShellExecute(Form1.Handle, 'open', 'temp.jpg', '', '', SW_SHOWNORMAL); btnDot.Enabled := True; btnCancel.Visible := False; StatusBar1.SimpleText := ' finished'; end; ... procedure TForm1.btnCancelClick(Sender: TObject); begin myTerminate := True; btnCancel.Visible := False; end; Ich werde nach meinem Urlaub noch etwas an dem Code formatieren und dokumentieren. Wenn er dann den Ansprüchen einer Veröffentlichung genügt, werde ich ihn evtl komplett veröffentlichen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz