Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Standard-Komponenten für neue Projekte - Dialog fehlt in der IDE

  Alt 28. Mär 2014, 11:15
Vermutlich wird das, was du vorhast, gar nicht gehen. Der simple IDE-Benutzer geht vielleicht blauäugig davon aus, daß man eine gemeinsame Basismenge an geladenen Packages hat und dann bei Öffnen eines Projekts die für das Projekt zusätzlich benötigten Packages nachgeladen werden. Naiv könnte man dann noch annehmen, daß bei Schließen des Projekts diese zusätzlichen Packages wieder entladen werden. Weit gefehlt!

Man kann schon der IDE sagen, welche Packages beim IDE-Start geladen werden. Diese Einstellungen gelten dann auch für ein danach neu erstelltes Projekt. Werden dann aber einzelne Packages nachgeladen, dann wirkt sich das auf die Einstellungen aller daraufhin gespeicherten Projekte aus.

Beispiel: Standardmäßig sind die Packages mit den Microsoft Automation Komponenten für Office 2000 und Office XP nicht geladen. In eine leere Projektgruppe erzeugen wir ein neues VCL-Projekt, aktivieren dort das XP-Package und schließen das Projekt. Eine Überprüfung führt nun das XP-Package weiterhin als geladen auf. Wenn ich das jetzt nicht abschalte, hat das zur Folge, daß jetzt alle Projekte, die ich in diesem Zustand speichere, in Zukunft dieses Projekt beim nächsten Öffnen mit aktivieren!

Der Grund liegt in der Speicher-Logik der Projektdateien: Es werden nämlich nicht die benötigten Packages gespeichert, sondern die nicht gewollten. Diese Einstellung wird aus der Liste der deaktivierten Packages zum Zeitpunkt des Speicherns ermittelt.

Ich würde dieses Verfahren mal als suboptimal bezeichnen.

Es ist natürlich auch ein etwas komplexeres Problem, als es auf den ersten Blick scheint. Wie soll sich die IDE z.B. verhalten, wenn eine Projektgruppe mehrere Projekte enthält, von denen eines das Package A benötigt und Package B abwählt und ein anderes genau umgekehrt. Mann kann auch nicht jedesmal umschalten, wenn das eine oder andere Projekt aktiviert wird, denn es können ja auch Forms eine anderen Projekts offen sein, die Komponenten aus dem im aktiven Projekt nicht benötigten Package enthalten. In Folge müssen beide Packages geladen werden - in der Hoffnung, daß die sich nicht beißen.

Der gewählte Ansatz war damals vielleicht nicht so der große Wurf, aber ich befürchte, daß sich daran in nächster Zeit wohl auch nichts ändern wird.

Fazit: Es gibt keinen sinnvoll verwendbaren Mechanismus das vom simplen IDE-Benutzer erwartete Verhalten zu realisieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat