Einzelnen Beitrag anzeigen

RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#3

AW: Runtime-Packages, visual inheritance, Updaten der Runtime-Packages ohne exe-Updat

  Alt 9. Nov 2012, 18:24
@Elvis: Wir benutzen Delphi XE, ich wüsste nicht, was es da für Updates an der RTL geben sollte, vielleicht geht da aber auch was an mir vorbei. Die drakonischen Einschränkungen, die du aufführst, sind mit einer Projektgruppe leicht zu regeln.

Das Programm stellt Callaktionen für ein Callcenter bereit. An der Grundfunktionalität wird sich also äußerst selten etwas ändern. Auch die Callaktionen sind sich sehr ähnlich (die Basisklasse aus meinem ersten Post). Was sich allerdings mehrfach täglich ändern kann, sind die Spezialisierungen - die Callaktionen selbst. Der Vorteil, den ich mir durch die Runtime-Packages verspreche ist der, dass das Programm nicht neu gestartet werden muss, um die Callaktion zu aktualisieren. Die exe kann sogar selbst auf Aktualisierungen prüfen und diese ungefragt aus unserem lokalen Netz downloaden.

Inzwischen habe ich mich natürlich weiter informiert und bin auf ein anderes Problem gestoßen: Die Spezialisierung der Basisklassen geschieht über Visual Form Inheritance (VFI). Das ist aber nur möglich, wenn die Basisklassen in einem eigenen Package sind und statisch geladen werden.
http://www.delphigroups.info/2/12/473336.html

Wenn ich das richtig verstanden habe, gibt es 3 Arten, ein Package einzubinden:
  1. Als Entwurfszeitpackage (wird direkt in die exe gelinkt)
  2. Als statisches Runtimepackage - benötigt bpl zur Runtime + dcp zur Designtime (wird beim Laden der exe gelinkt)
  3. Als dynamisches Runtimepackage - benötigt bpl zur Runtime (ich muss die Library selbst ähnlich wie eine DLL mit LoadPackage einbinden - siehe 1. Post)
Offenbar brauche ich für mein Vorhaben folgende Konstellation:
  • In der exe ist nur Code, der die Callaktionen managt, auf Updates prüft etc.
  • In einem Package "Basis" ist der Code, der die Gemeinsamkeiten aller Callaktionen darstellt (die Basisklassen).
  • Jede Callaktion hat ihr eigenes Package
  • Das Basispackage muss in die exe sowie in jedes Callaktions-Package als statisches Runtime-Package eingebunden werden.
So weiß die exe alles, was sie über die Callaktionen wissen muss (Code aus den Basisklassen) und die Callaktionen können visuell von den Basisklassen abgeleitet werden. Das Instanzieren einer Callaktion erfolgt dann wie im Beispiel im 1. Post.


Aktuell bin ich am Suchen, wie ich Packages als statische Runtimepackages einbinden kann. In der exe scheint das in den Projektoptionen auf der Seite Packages der untere Teil zu sein. Ich weiß allerdings nicht, ob die Checkbox "Laufzeit-Packages verwenden" bewirkt, dass ich alle dort bereits eingetragenen Packages als Laufzeit-Packages mitliefern müsste. Zweites Problem: Der untere Bereich ist bei Packages grau.
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat