AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Verwendung von Packages ohne Installation in der IDE
Thema durchsuchen
Ansicht
Themen-Optionen

Verwendung von Packages ohne Installation in der IDE

Ein Thema von Baumonaut · begonnen am 18. Mai 2016 · letzter Beitrag vom 19. Mai 2016
Antwort Antwort
Baumonaut

Registriert seit: 17. Jan 2015
9 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

Verwendung von Packages ohne Installation in der IDE

  Alt 18. Mai 2016, 10:58
Hallo zusammen

Wir haben diverse Komponenten selbst entwickelt und momentan als Packages in der IDE (XE7) installiert. Diese Packages werden bis jetzt in einem separaten Repo verwaltet. Das funktioniert soweit so gut und die registrierten Klassen können aus der Tool-Palette verwendet werden. Es sind einige Klassen regsitriert (procedure Register), die danach in Forms verwendet werden.

Nun wollen wir die Komponenten als Git-Submodule in das jeweilige Projektrepo einbinden wo sie benutzt werden. Mit einem Gruppenprojekt können die Packages eingebunden werden. Vor der Applikation können die Packages gebuildet werden, damit die .bpl-Files generiert werden. Diese können danach in der Applikation eingebunden werden. Nun gibt es aber Packages die Klassen enthalten die bisher in der Tool-Palette registriert waren (wie oben beschrieben). Diese werden jetzt nicht mehr registriert, da die Packages nicht mehr installiert werden. Wenn ich nun eine Unit öffne, die eine Klasse der Tool-Palette verwendet ist kommt der Fehler

Zitat:
Class XYZ not found. Ignore the error and continue? NOTE: Ignoring the error may cause components to be deleted or property values to be lost.
So wie ich das interpretiere, sucht die IDE nach der Klasse in der Tool-Palette, kann sie aber nicht finden weil sie nicht mehr regsitriert ist. Das kompilieren und erzeugen funktioniert hingegen problemlos.

Gibt es einen Weg, damit die bestehenden Klassen weiterhin verwendet werden können OHNE die Packages zu installieren und OHNE den Registry-Key "Known IDE Packages" zu modifizieren?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Verwendung von Packages ohne Installation in der IDE

  Alt 18. Mai 2016, 11:05
Gibt es einen Weg, damit die bestehenden Klassen weiterhin verwendet werden können OHNE die Packages zu installieren
Nein! Die IDE instanziert die Klassen zusammen mit dem Form, damit das Design überhaupt funktioniert. Dazu muss die Klasse in einem Design-Package registriert sein.

Was spricht denn dagegen, die Packages zu installieren?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Baumonaut

Registriert seit: 17. Jan 2015
9 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Verwendung von Packages ohne Installation in der IDE

  Alt 18. Mai 2016, 11:35
Was spricht denn dagegen, die Packages zu installieren?
Wenn unterschiedliche Projekte vorhanden sind (Applikation A und B) und diese verwenden unterschiedlche Stände der Komponenten (Submodule im Repo) müssen diese manuell installiert werden.
Arbeitet der Entwickler zuerst an A und nachheer an B und vergisst dabei den Komponentenstand von A zu deinstallieren und den von B zu installieren verwendet er einen falschen Kompnentenstand bei B.
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Verwendung von Packages ohne Installation in der IDE

  Alt 18. Mai 2016, 11:43
Dann hilft nur die Komponenten im Code zu erzeugen und nicht mit der IDE auf die Form zu setzen.
Also z.b im FormCreate diese zu erzeugen.
Fritz Westermann
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Verwendung von Packages ohne Installation in der IDE

  Alt 18. Mai 2016, 13:03
Was spricht denn dagegen, die Packages zu installieren?
Wenn unterschiedliche Projekte vorhanden sind (Applikation A und B) und diese verwenden unterschiedlche Stände der Komponenten (Submodule im Repo) müssen diese manuell installiert werden.
Arbeitet der Entwickler zuerst an A und nachheer an B und vergisst dabei den Komponentenstand von A zu deinstallieren und den von B zu installieren verwendet er einen falschen Kompnentenstand bei B.
War da nicht was mir bds.exe -r XXX? Man muss halt immer drandenken, das richtige XXX für das aktuelle Projekt zu nehmen.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Verwendung von Packages ohne Installation in der IDE

  Alt 18. Mai 2016, 13:27
War da nicht was mir bds.exe -r XXX? Man muss halt immer drandenken, das richtige XXX für das aktuelle Projekt zu nehmen.
Das ist zwar richtig, aber meiner Meinung nach nicht praktikabel.

Es gibt auch noch andere Punkte dabei zu berücksichtigen. Hat man z.B. ein Projekt auf und dazu das passende Package in Version X in der IDE geladen und kommt dann auf die Idee, ein Form eines anderen Projekts zu öffnen, das aber eine Version Y dieses Packages erfordert (z.B. weil neue Properties), dann nutzt das auch nichts. Man kann das auch noch detaillierter in meinem Artikel There Can Only Be One! nachlesen.

Ich habe es hier mittlerweile schon unter Laborbedingungen hinbekommen, daß beim Wechsel des Projekts die passenden Packages geladen (und die unpassenden entladen) werden. Das wäre mit dem aktuellen Verhalten der IDE aber schon das Ende der Fahnenstange. Allerdings, für die meisten Anwendungsfälle würde das vielleicht ausreichen.

Mein diesbezüglicher Wunsch an die IDE-Entwickler: Wenn ein Form wegen fehlender Komponenten nicht vollständig geladen werden kann, dann lasst bitte die DFM in Ruhe!
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Baumonaut

Registriert seit: 17. Jan 2015
9 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Verwendung von Packages ohne Installation in der IDE

  Alt 19. Mai 2016, 09:17
Danke für eure Antworten!

Ich habe es hier mittlerweile schon unter Laborbedingungen hinbekommen, daß beim Wechsel des Projekts die passenden Packages geladen (und die unpassenden entladen) werden. Das wäre mit dem aktuellen Verhalten der IDE aber schon das Ende der Fahnenstange. Allerdings, für die meisten Anwendungsfälle würde das vielleicht ausreichen.
Interessanter Ansatz. Da wäre ein Teil die Registry-Keys anzupassen. Aber das Laden der jeweiligen Packages muss auch noch angestossen werden.
Geladen werden diese Packages sicher beim Start der IDE und gleichzeitig muss es möglich sein das auch zu machen wenn die IDE geöffnet ist. Das Package kann ja auch via Mneu-Item installiert werden.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Verwendung von Packages ohne Installation in der IDE

  Alt 19. Mai 2016, 10:17
Da wäre ein Teil die Registry-Keys anzupassen. Aber das Laden der jeweiligen Packages muss auch noch angestossen werden.
Geladen werden diese Packages sicher beim Start der IDE und gleichzeitig muss es möglich sein das auch zu machen wenn die IDE geöffnet ist. Das Package kann ja auch via Mneu-Item installiert werden.
Das Prinzip dahinter entspricht ungefähr dem, was ich in dem Artikel beschrieben habe. Dabei bringt jedes Projekt eine Liste der benötigten (required) und verbotenen (forbidden) Packages mit. Beim Laden bzw. Aktivieren des Projekts werden die verbotenen Packages entfernt und die benötigten geladen. Wechselt man dann das Projekt, werden zunächst die nicht mehr benötigten (vom alten Projekt) und die verbotenen (vom neuen) entladen, bevor die neuen benötigten geladen werden. Die Packages bleiben also nur solange in der IDE registriert, wie das Projekt aktiv ist.

Wie gesagt, in den Grundzügen funktioniert dieser Ansatz schon. Es ist halt noch viel drumherum zu machen. Z.B.
  • Verwaltung der benötigten und verbotenen Packages mit der dazu nötigen GUI
  • wie werden die Package-Pfade in Relation zum Projektverzeichnis verwaltet
  • wie hindere ich die IDE daran dazwischenzufunken
  • usw.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz