Du musst sicherstellen, dass eine
Unit nur einmal in ein
Package kompiliert wird.
Packages, die diese
Unit benutzen müsen das
Package in das sie kompiliert wurde in die "requires" clause aufnehmen.
Dadurch werden sie zwar von einem anderen
package abhängig, aber du gewinnst auch mehr Klarheit über die Beziehungen zwischen den Modulen.
Wichtig zu wissen ist, dass ein
Package, dass von einem anderen
Package abhängig ist, dieses mitlädt wenn es selbst geladen wird.
Wenn man das für initialization/finalization beachtet, hat man ein sehr mächtiges System um einzelne Module während des Betriebes ein- und auszuklinken bzw. zu aktualisieren ohne die App beenden zu müssen.
Ein sehr krasses Beispiel, das zeigt was damit möglich ist, ist
Hydra von RemObjects.