Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.024 Beiträge
 
Delphi 12 Athens
 
#10

AW: PAS-Dateien im Suchpfad nicht neu kompilieren wenn nicht nötig

  Alt 21. Nov 2016, 12:47
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).


Sonst war bei mir Lazy Delphi Builder im Einsatz
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat