Ich habe noch was gefunden:
Dein Parsing der Units funktioniert nicht 100% richtig.
Folgendes Beispiel kannst du zu hause selbst testen
Erstelle eine neue Anwendung.
(Project1.dpr, Unit1.pas und Unit1.dfm)
Diese jungfräuliche Anwendung speicherst Du in einem leerem Order.
Dann kopierst Du die Quellcodedateien der
VCL in das selbe Verzeichnis.
( wenn $(DELPHI) = C:\Programme\Borland\Delphi7, dann kopiere $(DELPHI)\Source\
Rtl\Common, $(DELPHI)\Source\
Rtl\Sys und $(DELPHI)\Source\
Rtl\Win, $(DELPHI)\Source\
Vcl )
Damit kannst Du dann alle Abhängigkeiten einer einfachen Anwendung inkl
VCL zeigen.
(Bild anklicken um die 1027x768 Version zu sehen)
(siehe auch:
http://www.delphipraxis.net/internal...=557810#557810 )
In Deinem UnitUsage werden aber auch folgende Artefakte als Units angezeigt:
"{$ENDIF}", "{$ifdef", "and", "case", "directories)", "directory", "etc.)", "file", "it", "Libc", "Ipici->IpVerb", "NMMOUSE", "server", "StdActns{$IFDEF", "SwitchChars", "that", "the", "then", "this", "Types{$IFDEF", "which", "which member function to invoke a command programmaticly. The explorer displays the help text in his status bar", "WinHelpViewer{$ENDIF}", "work-goup"
Siehe auch Screenshot im Anhang.
Bei Libc, server, SwitchChars könnte ich mir ja noch Units vorstellen, aber nicht bei den Namen, die z.B. Zeichen beinhalten, die bei Units verboten sind. <> ['a'..'z', 'A'..'Z', '_', '0', '1'..9']
Du solltest Dir das fehlerhafte Verhalten mal anschauen.