![]() |
Re: Unit-Abhängigkeiten visualisieren
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
[edit]Was vorallem bei jpg & co interesant ist. Aber auch bei Vektorgrafik wird die Schrift kleiner je größer das size ist.[/edit]
Code:
Siehe Handbuch (Anhang Tabelle 3 auf Seite 13 "graph attributes")
DiGraph Uses {
graph [ratio="0.7"]; node [label="unit dependencies for Project1.dpr"]; "Project1.dpr" [shape=box, style=filled, color=red] "Project1.dpr" -> "Unit1.pas"; "Project1.dpr" -> "Unit2.pas"; ... } Viel Spaß |
Re: Unit-Abhängigkeiten visualisieren
Zitat:
Gruß Michael |
Re: Unit-Abhängigkeiten visualisieren
Liste der Anhänge anzeigen (Anzahl: 1)
das meine ich mit falschen pfeilchen, (ist als WMF exportiert und im coreldraw dann vergrößert)
im unitusage kann man nicht so stark vergrößern, nachdem es 1GB RAM verbraten hat, kommt dann out of system ressource ;) (obwohl, der rechner hätte noch ein paar reserven .... ) |
Re: Unit-Abhängigkeiten visualisieren
So hatte ich das ja auch verstanden.
Was ich meinte war: Wenn dot.exe das Bild selbst gemalt hätte, dann wären die Pfeile vermutlich richtig gewesen. Dot.exe kann ja auch Bilder und Vektorgrafiken ausgeben. Das nutze ich in UnitUsage aber nicht. Ich rufe dot.exe mit dem Parameter Tplain-ext auf und erhalte damit eine Datei mit Informationen, wie ich das Bildchen zu zeichnen habe. Die Angaben zu den Pfeilen bestehen aus einer Liste von Punkten, die sich glücklicherweise mit dem Befehl Canvas.PolyBezier(...) identisch zu den von DOT selbst erzeugten Bildern zeichnen lassen. Den Kopf der Pfeilchen muß ich mir aber selbst errechnen (TDot.CalcArrowEdges). Vielleicht hab' ich da ja noch irgendwo einen Fehler. Kann natürlich sein, daß es durchaus auch schon von DOT falsch berechnet wird. In der Regel bin aber immer ich schuld. Ein WMF Export in UnitUsage exportiert immer nur meine "Interpretation" der DOT Grafik. Eine unangetastete, original unverfälschte DOT Grafik erhielte man eben über einen zusätzlichen Parameter (wie beispielsweise das erwähnte -Tsvg). 1GB verbraten? Nicht schlecht. Vielleicht sollte ich wenigstens von pf24bit auf pf8bit runterschrauben... Gruß Michael |
Re: Unit-Abhängigkeiten visualisieren
hi grizzly,
wollte mal kurz nachfragen, ob du noch verbesserungen brauchst ... hab noch eines beim RTF export DelDirective.pas / 891
Delphi-Quellcode:
und hab auch noch (zwar ein etwas Quick and Dirty reingebaut (aber habs auf die schnelle gebraucht und funkt auch) das er bei den uses im projekt Source file die in erkennt und das richtige file lädt (beim alten hat er IMMER im Search Pfad gesucht) .. sind aber ein paar kleinere Änderungen an verschiedene Stellen ...
FUNCTION ProcessInclude(FileName: string): integer;
{ Handles recursive procedure call to process an include file } BEGIN Result := -1; if ExtractFileExt(FileName) = '' then ChangeFileExt(FileName, '.pas'); FileName := FileSearch(FileName, SearchPath); IF FileName = '' then EXIT; Result := RemoveDeadCodeEx(FileName, SourceFileName, Row, SLOriginal, SLProcessed, [b]SLSourceRTF[/b], SLRoutines, ParseAction, SearchPath, DefList, ErrMsg); << SLSourceRTF END; {ProcessInclude} |
Re: Unit-Abhängigkeiten visualisieren
Aber immer gerne!
Das mit dem IN war eines der nächsten Dinge, die ich eigentlich anpacken wollte, allerdings haben mich wieder tausend andere Dinge aufgehalten. Auch gut, wenn's schon fertig ist. :-D Das mit dem Quick-und-Dirty ist bei meinem restlichen Code schließlich auch kein Problem. Bei nächster Gelegenheit werde ich Deine Änderungen und Erweiterungen mit einbauen. In knapp zwei Wochen sollte ich dafür mal wieder Luft haben... Grüße Michael |
Re: Unit-Abhängigkeiten visualisieren
Habe soeben die Version 0.6 im ersten Eintrag dieses Threads verlinkt. Update war nötig, weil das alte UnitUsage mit den neuesten DOT Versionen nicht mehr zurecht kam.
Die von Gruber_Hans_12345 vorgeschlagenen Änderungen sind allerdings noch nicht drin (Ich hab' das Tool bis vor kurzem nicht mehr benötigt und deshalb nicht mehr dran rumgeschraubt.) Sourcecode ist auch nicht aufgeräumt, umstrukturiert oder sonstwie überarbeitet. Ist halt "as is", entstanden aus einer Experimentier-Laune heraus ;) Gruß Michael |
Re: Unit-Abhängigkeiten visualisieren
Das mit dem IN hab ich auch grad gemerkt, als einige Dateien nicht geladen wurden
Und dann gab's noch andere Probleme: Zitat:
Ich weiß, meine Units sind ein Kraus für derartige Verarbeitungen. :oops: Die vordefinierten Compilerschalter gehen nur bis D7 und es wäre kein Problem die Fehlenden selber anzugeben oder eben noch nachzurüsten, nur leider gibt es ja größere Problemchen. :? Eigentlich wollte ich nur mal sehen, in wie weit sich etwas anderes Nachrüsten läßt... Auf den Delphi-Tagen kam unter Anderem die Frage wieder auf, nach einer "optimaleren" Unit-Reinfolge, damit das Projekt eventuell schneller kompiliert werden würde. Und da dacht ich mir, warum nicht gleich einen "feritgen" Parser ausnutzen, bzw. es gleich hier mit einbauen und nur noch das Ergebnis durchzugehn. :nerd: Na gut, da der Aufwand nun größer werden dürfte, werd' ich das erstmal rausschieben und andere Dinge fertigmachen. Als Test hatte ich ![]() [add] was ich mich grad fragte: Man kann doch in die IDE irgendwie Zusatzmodule integrieren und daraus auf die "aktiven" Dokumente zugreifen. Gäbe es da eine Möglichkeit direkt den delphieigenen Parser zu nutzen und darüber direkt die Units abzufragen? |
Re: Unit-Abhängigkeiten visualisieren
Richtig, wenn man REGION und ENDREGION nachrüstet (Unit DelDirective.pas, SkipMinorCompilerDirectives), dann ist man nicht viel weiter: Des Pudels Kern ist {$IF . Da müßte ich beginnen, den folgenden Bedingungen auszuwerten und abzuprüfen etc. Das war mir dann doch zuviel (und bei meinen Projekten benötige es (noch) nicht.). Mein Ansatz des "Parsens" war derart primitiv, daß sich diese Auswertung nicht bequem drauf aufsetzen läßt.
Sorry Michael [add] Dafür den Delphi-eigenen Parser nehmen zu können wär ein Traum. Aber davon versteh' ich leider noch weniger... |
Re: Unit-Abhängigkeiten visualisieren
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 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