Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - BPL als Laufzeitbibliothek
Carla - Di 06.11.07 10:01
Titel: BPL als Laufzeitbibliothek
Hallo,
bedingt durch das Hydra-Framework muss ich VCL,RTL und Hydra als Laufzeitpackage bereitstellen.
Gibt es in Delphi eigentlich die Möglichkeit mehrere Packages in einem zusammenzufassen?
Also z.B. runtime.bpl enthält VCL;RTL;Hydra;Fastreport;IBObjects
Ich hatte bereits probiert diese BPL unter contains in runtime.bpl aufzuzählen. Das funktioniert aber nicht.
Irgendwie kommt dann die Meldung, das einige der aufgezählten BPL in Requires benötigt werden.
Der Compiler fügt diese automatisch dort ein und verlangt dann, diese unter Contains wieder zu löschen.
Hinbekommen habe ich nur, das ich den Quelltext der jeweiligen Projektdateien in ein Projekt copiert habe.
Also
IBObjectsreg.Pas
Fastreportreg.Pas ...
So möchte ich es aber nicht unbedingt machen.
Hintergrund ist, das ich mit einem Projekt fast 100 BPL warten und updaten muss. Diese möchte ich gerne
in einer Laufzeitbibliothek zusammenfassen.
Solange der Code dieser Laufzeitbibliothek nicht explizit neu kompiliert wird, ist keine Auslieferung
notwendig.
Für einen Tip und ein kleines Beispiel, falls es geht, dankbar
Mit freundlichem Gruß Carla
Logikmensch - Di 06.11.07 10:54
Also.
Soweit ich es erfasst habe, gibt es folgende Regeln:
Eine Unit darf immer nur in ein (!) aktives Package über contains aufgeführt werden. Die Unit wird dann in das Package hineinkopiert. D.h. wenn Du über uses die Units in Deinem Programm verwenden willst, dann muss dem Compiler ganz klar sein, aus welchem Package die Unit genommen wird. Deshalb wird das von anfang an unmöglich gemacht.
Hingegen gehören Querverweise von einem Package auf andere Packages in die Requires-Liste.
Einen Direkten Weg zum Zusammenführen gibt es nur insofern, dass Du die beiden Quell-Packages löschst und ein neues Package erstellst, in das Du die beteiligten Units aufnimmst. Dann wird wahrscheinlich auch kein Requires-Konflikt mehr auftreten.
Carla - Di 06.11.07 14:45
[quote="[user]Logikmensch
Einen Direkten Weg zum Zusammenführen gibt es nur insofern, dass Du die beiden Quell-Packages löschst und ein neues Package erstellst, in das Du die beteiligten Units aufnimmst. Dann wird wahrscheinlich auch kein Requires-Konflikt mehr auftreten.[/quote]
Ja so mache ich es ja zur Zeit.
Welcher Teufel hat Borland geritten, die ganze BPL Geschichte so zu verkomplizieren.
In Net ist das offensichtlich einfacher.
Gruß
Carla
Logikmensch - Di 06.11.07 14:55
Keine Ahnung, warum die das so gemacht haben. Wahrscheinlich steckt aber schon eine gute Idee dahinter. Aber wenn man nur an der Oberfläche kratzt, dann erschließt sich einem die tiefe Weisheit natürlich nicht. Ich will aber auch von mir nicht behaupten, dass ich alles daran kapiere.
Ich finde mich mit den Gegebenheiten ab.
Kompliziert wird es immer genau dann, wenn man fertige Packages von anderen nutzen möchte, aber eine Unit dann doppelt verwendet wird. Dann wird's knifflig.
Notfalls muss man eines der beiden problematischen Packages in den Optionen deaktivieren.
Aber bislang habe ich keine solchen Konflikte gehabt - liegt vielleicht an der guten Auswahl von Komponentenpackages.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!