Die Struktur eines Package

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Packages erstellen und bearbeiten

Packages setzen sich aus folgenden Teilen zusammen:

Package-Name

Package-Namen müssen innerhalb eines Projekts eindeutig sein. Wenn Sie einem Package z.B. den Namen "stats" geben, erzeugt der RAD Studio eine Quelldatei namens STATS.DPK. Der Compiler generiert eine ausführbare Datei namens Stats.bpl und ein binäres Abbild mit dem Namen STATS.DCP. In den requires-Klauseln anderer Packages kann das Package über den Namen stats referenziert werden. Mit diesem Namen wird auch in Anwendungen auf das Package Bezug genommen.

requires-Klausel

Die requires-Klausel gibt an, welche externen Packages vom aktuellen Package verwendet werden. Ein in die requires-Klausel eingebundenes externes Package wird beim Compilieren automatisch zu jeder Anwendung gelinkt, die sowohl das aktuelle Package als auch eine der Units verwendet, die im externen Package enthalten sind.

Wenn Unit-Dateien, die in Ihrem Package enthalten sind, andere gepackte Units referenzieren, sollten diese Packages in der requires-Klausel Ihres Package enthalten sein. Fehlen die Packages in der requires-Klausel, lädt der Compiler die entsprechenden Units auf dem normalen Weg.

Hinweis:  Die meisten Packages benötigen rtl. Wenn Sie VCL-Komponenten verwenden, benötigen Sie auch das Package vcl.

Zirkuläre Bezüge bei Packages vermeiden

In der requires-Klausel eines Package darf es keine zirkulären Bezüge geben. Das bedeutet im Einzelnen:

  • Ein Package darf nicht in seiner eigenen requires-Klausel aufgeführt sein.
  • Eine Folge von Referenzen darf keine rückwärtsgerichtete Referenz enthalten. Wenn Package A in seinem requires-Abschnitt Package B referenziert, kann Package B nicht Package A referenzieren. Wenn Package A Package B und Package B Package C referenziert, kann C nicht A referenzieren.

Doppelte Package-Bezüge vermeiden

Der Compiler ignoriert doppelte Bezüge in der requires-Klausel und im Eingabefeld Laufzeit-Packages. Aus Gründen der Übersichtlichkeit sollten Sie aber doppelte Referenzen entfernen.

contains-Klausel

In der contains-Klausel wird festgelegt, welche Unit-Dateien in das Package eingebunden werden sollen. Wenn Sie ein eigenes Package schreiben, legen Sie den Quelltext in .pas-Dateien ab und nehmen diese in die contains-Klausel auf.

Redundante Verwendung von Quelltext vermeiden

Ein Package kann nicht Bestandteil der contains-Klausel eines anderen Package sein.

Alle Units, die entweder direkt in der contains-Klausel eines Package oder indirekt in einer seiner Units enthalten sind, werden beim Compilieren in das Package eingebunden.

Eine Unit kann weder direkt noch indirekt in mehr als einem der Packages enthalten sein, die von einer Anwendung (auch von der IDE) benutzt werden. Es ist daher nicht möglich, ein selbsterzeugtes Package, das eine der Units in vcl (VCL) enthält, in der IDE zu installieren. Um eine bereits eingebundene Unit-Datei in einem weiteren Package zu verwenden, muss das erste Package in die requires-Klausel des zweiten aufgenommen werden.

Siehe auch