Hallo Uwe, kannst du etwas mehr darüber erzählen?
Klar! Ich denke, jeder ist schon mal in der Situation gewesen, daß er mit unterschiedlichen Versionen einer Bibliothek arbeiten musste. In dem Fall bieten die verschiedenen Versionsverwaltionssysteme die nötigen Mittel, um die richtigen Versionen der verschiedenen Bibliotheken einzubinden (bei
SVN z.B. die Externals). Das Problem dabei ist aber, daß die
IDE in der Regel davon unbeeinflusst bleibt und lediglich das Design-
Package geladen hat, was als letztes installiert wurde (vermutlich die letzte Version der Bibliothek). Das kann nun dazu führen, daß zur Designzeit die Version der
BPL nicht zur Version der Sourcen passt die compiliert werden. Im ungünstigen Fall werden dabei neue Properties in die
DFM geschrieben die zur Laufzeit nicht bekannt sind.
Ein weiterer Fall aus der Praxis: Ein bestehendes Projekt verwendet projektspezifische Komponenten aus einem Design-
Package zu diesem Projekt, das in der
IDE installiert werden muss. Andernfalls werden diese Komponenten auf den Forms nicht gefunden. Nun wird dieses Projekt von der
BDE zu FireDAC migriert. Die in den Komponenten verwendeten TQuery-Typen werden dabei durch TFDQuery ersetzt. Die requires-clause des
Package wird folglich von
BDE- auf FireDAC-Packages umgestellt. Jetzt existieren zwei gleichnamige Packages mit fast identischem Inhalt (eines gegen die
BDE compiliert und eines gegen FireDAC), die natürlich nicht gleichzeitig in die
IDE installiert werden können. Will ich nun wechselweise die
BDE-Version und die FireDAC-Version des Projekts bearbeiten, muss ich jedesmal erst das aktuelle Projekt schließen, das
Package deinstallieren, das andere
Package installieren und das andere Projekt öffnen.
Hier bietet der
Package Magician eine transparente Möglichkeit, Design-Packages projektbezogen zu installieren. Dabei werden diese projektbezogenen Packages mit dem Öffnen des Projekts in der
IDE installiert und beim Schließen des Projekts wieder deinstalliert. Man kann nun einfach wieder die Projekte umschalten und hat automatisch immer das passende Design-
Package geladen.
Man kann mit dem
Package Magician auch die Komponenten-Inflation etwas eindämmen. Die Komponentensammler unter uns kennen die überquellenden Komponentenpalette und die überlangen Ergebnislisten, wenn man z.B. bei F6 "label" eingibt. In den jeweiligen Projekten werden aber in der Regel nur ein Teil dieser Bibliotheken wirklich verwendet. Mit dem
Package Magician kann man nun alle diese Design-Packages aus der
IDE entfernen und nur bei den Projekten laden, in denen sie tatsächlich gebraucht werden (dann auch in der passenden Version - siehe oben).
Ich kenne das Tool nicht und kann auch so auf den ersten Blick nicht erkennen, ob es bei den oben beschriebenen Szenarien eine Hilfe ist.