AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Unit-Abhängigkeiten visualisieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unit-Abhängigkeiten visualisieren

Ein Thema von grizzly · begonnen am 17. Jul 2006 · letzter Beitrag vom 11. Jun 2009
Antwort Antwort
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.441 Beiträge
 
Delphi 2007 Professional
 
#1

Re: Unit-Abhängigkeiten visualisieren

  Alt 12. Mär 2007, 11:26
perfekt danke super

hab auch gleich mal 3 kleine änderungen ...


Änderung 1 :
Delphi-Quellcode:
DelDirective (Zeile 1262)
                        IF KnownDirective('I') or KnownDirective('INCLUDE') THEN { Include files }
                            Result := ProcessInclude(ActiveCDirPara); // Recursive call!
Habe diese zwei zeilen in die (IF CompDirValid then) gesetzt, da sonst auch $I berücksichtigt werden, die eigentlich nicht sollten


Änderung 2
Delphi-Quellcode:
DelDirective (Zeile 955)
                        (Long:'HINTS'; Short:' '),
                        (Long:'STACKCHECKS'; Short:' '),
HINTS und STACKCHECKS hinzugefügt zum array Directive


Änderung 3


Delphi-Quellcode:
DelDirective (Zeile 1239)
                             IF not b THEN
                               BEGIN
                                 b := DefList.Find(InvertCompDir(#1+ActiveCDirPara), i); // Check, if inverted compiler directive is known
                                 (*
                                IF not b then
                                  begin
                                    Result := -4;
                                    CreateErrorMsg(ErrMsg, SourceFileName, Row, 'Compiler switch '+ copy(ActiveCDirPara, 1, Length(ActiveCDirPara)-1) + ' not specified');
                                  end;
                                   *)

                               END;
Hab das not mal auskommentiert, warum muß die compilerdirektive als - da sein ?
wenn ich schreibe {$IFOPT C+} und C+ nicht gefunden wurde, dann ist die IFOPT ungültig und sollte nicht geparst werden oder ? (und es muß keine C- gesetzt sein oder?


so, mein erstes projekt kann er jetzt mal ohne probs parsen, mal mein großes testen ...


hab auch mal die zwei units (für BuildGraph) mit einer cache liste beshcleunigt, da die bei mir extrem oft aufgerufen werden ... allerdings ist das dot.exe so langsam, das ich es beim großen projekt nicht erwarten kann das es fertig wird ... (die temp.dot datei hat 4600 zeilen ...)

Delphi-Quellcode:
procedure TForm_Main.BuildUnitCache;
var
    i : integer;
begin
    unitCache := TStringList.Create;
    unitCache.CaseSensitive := false;
    for i:=0 to CheckListBox_Units.Count-1 do
        if CheckListBox_Units.State[i] IN [cbChecked, cbGrayed] then
            unitCache.AddObject(UpperCase(CheckListBox_Units.Items[i]), TObject(CheckListBox_Units.State[i]));

    unitCache.Sorted := TRUE;
end;

FUNCTION TForm_Main.UnitInGraph(UnitName: string): boolean;
{ - Unit is patr of the graph? }
VAR
  i : integer;
BEGIN
  Result := false;
  if unitCache = nil then BuildUnitCache;

  Result := unitCache.IndexOf(UnitName) >= 0;
END;

FUNCTION TForm_Main.UnitShowChilds(UnitName: string): boolean;
{ Show child Units for that Unit? Depends on user setting and result of code analysis ) }
VAR
  i : integer;
BEGIN
    Result := false;
    if unitCache = nil then BuildUnitCache;
    i := unitCache.IndexOf(unitName);
    if i >= 0 then
        Result := TCheckBoxState(unitCache.Objects[i]) in [cbChecked];
END;

also dot.exe dauert nur ca. 30 minuten, dann ist es fertig ...
und das bild sieht wirklich lustig aus (ob man da noch was erkennen kann? )
Miniaturansicht angehängter Grafiken
u_uu_141.png  
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 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