X1033 Die Unit '%s' wurde implizit in Package '%s' importiert (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)


Diese Warnung gibt an, dass eine Unit implizit in das gerade compilierte Package gelinkt wurde. In der Regel werden Units auf eine der beiden folgenden Weisen in Packages einbezogen:

  • Sie werden explizit über den Ordner "Enthält" importiert
  • Sie sind Teil eines anderen im Ordner "Erfordert" angegebenen Package

Wird eine für die Compilierung benötigte Unit weder im Ordner "Enthält" noch in einem im Ordner "Erfordert" angegebenen Package gefunden, wird die Unit implizit importiert, so als ob sie im Ordner "Enthält" enthalten wäre.

Diese Warnung weist den Programmierer darauf hin, die Unit entweder explizit einem Package hinzuzufügen oder eine Referenz auf ein Package, das die fehlende Unit enthält, hinzuzufügen.

Um dieses Problem künftig zu vermeiden, müssen Sie die DCP-Datei (die die Compilier- und Link-Informationen für das Package enthält) entweder der Requires- oder der Contains-Klausel (bzw. dem Ordner "Enthält" oder "Erfordert") hinzufügen:

  • Der Ordner Erfordert verweist auf andere Packages, die für die Compilierung dieses Package benötigte Units enthalten. Diese Packages können aus Delphi stammen, wie z. B. aus dem RTL-Package, das die Unit System, die Unit SysUtils usw. enthält, oder andere vom Programmierer erstellte Packages sein, die benutzerdefinierte Units enthalten.
  • Der Ordner Enthält beinhaltet die Units, die in das Package einbezogen werden sollen, außer Units, die in anderen, im Ordner "Erfordert" aufgeführten Packages vorhanden sind.

Beheben des Problems

Im Quelltext-Editor können Sie den "Requires"- und "Contains"-Klauseln bei Bedarf Units hinzufügen. In der Projektverwaltung können Sie den Ordnern "Erfordert" und "Enthält" Units wie folgt hinzufügen.

So fügen Sie dem Ordner "Erfordert" in der Projektverwaltung eine Referenz hinzu:

  1. Klicken Sie mit der rechten Maustaste auf den Ordner "Erfordert".
  2. Wählen Sie im Kontextmenü Referenz hinzufügen aus.
  3. Wählen Sie im Dialogfeld "Hinzufügen" die entsprechende DCP-Datei aus, oder geben Sie einfach den Namen der referenzierenden Projekt-DCP-Datei ein, wenn sich die Datei im Suchpfad befindet.
  4. Die DCP-Datei wird dann im Ordner "Erfordert" des Projekts aufgeführt.

So fügen Sie dem Ordner "Enthält" in der Projektverwaltung eine Unit hinzu:

  1. Klicken Sie mit der rechten Maustaste auf den Ordner "Enthält".
  2. Wählen Sie einen der beiden Befehle aus:
    • Neue hinzufügen > Unit aus dem Kontextmenü, um dem Ordner "Enthält" eine leere Unit hinzuzufügen (der Quelltext-Editor zeigt die Vorlage für den Unit-Code an).
    • Hinzufügen aus dem Kontextmenü, um das Dialogfeld "Öffnen" zu öffnen. Wählen Sie die PAS-Datei für die Unit aus, die Sie hinzufügen möchten.

Beispiel

In folgendem Programm verwendet Classes beispielsweise (direkt oder indirekt) consts, TypInfo und SysUtils.

package Produce;
  contains Classes;
end.

Für jede dieser verwendeten Units wird eine Warnung ausgegeben.

Um dieses Problem zu beheben, werden in folgendem Programm alle diejenigen Units explizit benannt, die in der contains-Klausel in das Package importiert werden:

package Solve;
  contains consts, TypInfo, SysUtils, Classes;
end.

Siehe auch