Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ist Unit einkompiliert? (https://www.delphipraxis.net/160425-ist-unit-einkompiliert.html)

hoika 12. Mai 2011 21:45

AW: Ist Unit einkompiliert?
 
Hallo,

ich benutze den PAL (Pascal Analyzer).
Der hat u.a. ein Unit Use.


Heiko

ASM 12. Mai 2011 22:06

AW: Ist Unit einkompiliert?
 
Wenn es nur um ein Auflisten aller im Projekt insgesamt eingebundenen Units geht, ist das leicht und sehr übersichtlich auch mit dem Unit Dependency Analyzer von ModelMaker möglich. Das Programm ist kostenfrei.

Einzige lästige Notwendigkeit: Das Programm liest nicht selbsttätig alle Bibliotheks- und Suchpfade aus Delphi aus.
Sollen also komplett nicht nur alle direkt, sondern auch alle indirekt eingebundenen Units erfasst und auf ihre gegenseitige Abhängigkeit analysiert werden, müssen alle im Delphi-Projekt eingetragenen Bibliotheks- und Suchpfade manuell im Programm benannt werden. Das kann man zwar einzeln und daher etwas sehr mühsam im Programm selbst eintragen (unter Project Options), viel einfacher geht das aber auf einen Rutsch mit einem normalen Texteditor im Dependency Projects file (*.mmdep). Dazu muss man einfach die beiden Zeilen aus dem in Delphi eingetragenen Bibliothekspfad sowie aus dem Suchpfad des aktuellen Delphi-Projektes kopieren und in das mmdep-File unter "SearchPath=" übertragen.

Der Dependency Analyzer zeigt dann zum einen alle Units an, auf die im aktuellen Delphi-Projekt an irgendeiner Stelle in irgendeiner der eingebundenen Units mittels "Uses" Zugriff erfolgt. Außerdem kann man sich auch anzeigen lassen, welche der einzelnen Units von welchen anderen Units benötigt wird

himitsu 13. Mai 2011 11:34

AW: Ist Unit einkompiliert?
 
Nur daß die selbstparsenden Varianten irgendwie die Laufzeitpackages vergessen und dann auch Units aufgelistet werden, welche zwar enthalten sind, aber garnicht einkompiliert werden.

rollstuhlfahrer 13. Mai 2011 17:46

AW: Ist Unit einkompiliert?
 
Ich bin eben auf was gestoßen: Delphi liefert eine Liste der einkompilierten Units (leider nur die Namen, nicht auch noch die Pfade ;) ) gleich mit der Anwendung mit.
EXE-Datei mit Ressource-Editor öffnen -> RC Data -> "PACKAGEINFO". Bei XN Ressource Editor gibts dann 2 Tabs: Requires und Contains. In letzterem steht dann auch, warum die Unit eingebunden ist.

Bernhard

USchuster 13. Mai 2011 22:30

AW: Ist Unit einkompiliert?
 
Das Auslesen der Informationen aus der Ressource PACKAGEINFO geht auch mit TJclPePackageInfo (Beispiel s.u.), aber sollten die enthaltenen Units nicht im DPK stehen und wenn nicht, dann sollte es eine Warnung (W1033) geben?

Schon mal das Compilieren mit dem Parameter "--depends" probiert? ("Unit-Abhängigkeitsinformationen ausgeben" in the Projektoptionen in der IDE)

Delphi-Quellcode:
program PePackageInfoTest;

{$APPTYPE CONSOLE}

uses
  Windows, JclPEImage;

var
  I: Integer;
  PkgHandle: THandle;
  PePackageInfo: TJclPePackageInfo;
begin
  PkgHandle := LoadLibrary('c:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\designide150.bpl');
  if PkgHandle <> 0 then
  begin
    PePackageInfo := TJclPePackageInfo.Create(PkgHandle);
    try
      WriteLn('ContainsCount: ', PePackageInfo.ContainsCount);
      for I := 0 to PePackageInfo.ContainsCount - 1 do
        WriteLn(PePackageInfo.ContainsNames[I]);
    finally
      PePackageInfo.Free;
    end;
  end;
  ReadLn;
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr.
Seite 2 von 2     12   

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