Autor Beitrag
Carla
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111
Erhaltene Danke: 2



BeitragVerfasst: Di 06.11.07 10:01 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: 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.

_________________
Es gibt keine Probleme - nur Lösungen!
Carla Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 111
Erhaltene Danke: 2



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: 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.

_________________
Es gibt keine Probleme - nur Lösungen!