Jetzt, wo diese beiden Voraussetzungen geklärt sind, wollen wir damit anfangen zu erklären, wie die
IDE feststellt welche Packages for verzögertes Laden in Frage kommen. Wenn die
IDE auf ein
Design-Time Package stößt, dann wird diese meistens verschiedene
Run-Time Packages "benötigen", welche
ausschließlich die Informationen enthalten, welche zur Laufzeit der Komponenten benötigt werden. (Du hast doch hoffentlich Deine
Design-Time Komponenten von den
Run-Time Komponenten getrennt... hast Du? Wenn nicht, dann ist das ein Grund für eine spätere Diskussion

) Das
Design-Time Package ist der Ort, wo die eigentliche Komponente und die Komponenten-/Eigenschafts- und Auswahleditoren registriert werden. Diese wird durch Aufrufe zu
RegisterComponents,
RegisterPropertyEditor,
RegisterComponentEditor, etc innerhalb der globalen Prozeduren
Register erledigt. Es ist wichtig, dass
immer die
Register Prozedur genutzt wird, um diese Aufgabe zu erledigen damit das verzögerte Laden der Packages unterstützt werden kann. Weitere Informationen dazu gibt es in
diesem Blog Eintrag. Um zu ermitteln, ob ein
Package verzögert geladen werden kann werden alle Aufrufe zu Prozeduren, welche Komponenten, Eigenschaftseditoren, etc. registrieren überwacht. Es wird darauf geachtet, ob alle Registrierungen sich ausschließlich auf das zu registrierende
Package beziehen, oder nicht. Wenn z.B. ein Eigenschaftseditor registriert wird, der sich auf möglicherweise auf eine Komponente ausserhalb des Packages bezieht, so wird dieses
Package vom verzögerten Laden ausgeschlossen. Das ist ein wichtiger Punkt.