Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi eine Unit in 2 Packages (https://www.delphipraxis.net/30242-eine-unit-2-packages.html)

Sanchez 22. Sep 2004 14:35


eine Unit in 2 Packages
 
Hallo,

Neuerdings meldet mir Delphi immer beim Laden eines Projekts:

Code:
Package 'xxx kann nicht geladen werden.' Es enthält die Unit 'xxxx,'die auch im Package 'yyy' enthalten ist.
Soll dieses Package beim Laden des nächsten Projekts geladen werden?
Ich weiss, das diese Unit durch uses in beide Packages reingezogen wird. Beim Kompilieren der Packages bekommen ich auch die Warnung:
Code:
Die Unit '<Element>' wurde implizit in Package '<Element>' importiert
Also hab ich laut OH gegen folgende Regel verstoßen:
Zitat:

Eine Unit darf nicht in mehreren verwandten Packages vorhanden sein.
Allerdings ist es schon länger so, dass die Unit in 2 Packages benötigt wird. Bis heute hat das auch funktioniert. In einem der beiden Packages wurde jetzt eine neue Komponente aufgenommen, die überhaupt nichts mit der betroffen Unit zu tun hat und plötzlich gehts nicht mehr.

Woran könnte das liegen?
Eventuell sollte ich die Package-Aufteilung etwas überdenken, aber es hat ja schon lange gut funktioniert.

grüße, daniel

Sanchez 22. Sep 2004 18:53

Re: eine Unit in 2 Packages
 
Ich konnte das Problem lösen ohne so recht zu wissen warum es so plötzlich aufgetreten ist.
Beim ersten Package hab ich alle Units, die über die Uses reingezogen wurden in die Contains aufgenommen. Beim 2ten das erste ins Requires geholt und beide Packages neu compiliert und installiert.

... und jetzt läufts wieder.

Hansa 22. Sep 2004 19:00

Re: eine Unit in 2 Packages
 
Das ist schon sehr empfindlich. Wenn die Unit einmal in beiden Packages drin ist, dann am besten in beiden wieder raus machen. Delphi sucht sich die richtige dann selber.

Warum warnen sie nicht, bevor es doppelt drin ist ? Das wünsche ich mir für D9. :mrgreen:

Sanchez 22. Sep 2004 19:14

Re: eine Unit in 2 Packages
 
Von dem her würde ich es schön finden, wenn man verschiedenen Arten von Hinweisen und Warnungen im Messagefenster verschiedene Farben oder Symbole zuweisen könnte. So gehen die wirklich wichtigen Meldungen unter vielen anderen unter.

Hansa 22. Sep 2004 19:43

Re: eine Unit in 2 Packages
 
Das mit D9 sollte ein kleiner Gag sein. Nicht, daß der D9 Thread jetzt hier weitergeht. :mrgreen: In den Umgebungsoptionen kann man übrigens noch einiges mehr einstellen, was im Standard nicht automatisch so ist. Z.B. kann man einer Zahl und einem String unterschiedliche Farben zuordnen.

Sanchez 22. Sep 2004 20:59

Re: eine Unit in 2 Packages
 
Zitat:

Zitat von Hansa
Nicht, daß der D9 Thread jetzt hier weitergeht. :mrgreen:

Ich hätte das ja nicht gerne in D9, sondern in D6. :mrgreen:

SirThornberry 22. Sep 2004 21:12

Re: eine Unit in 2 Packages
 
der Fehler tritt eigentlich nur auf wenn in mehr als einem Packages unter "Require" die gleiche Unit aufgelistet ist. Wie schon beschrieben, einfach bei den anderen Packages dann im Require das andere Package angeben und schon gehts

NicoDE 22. Sep 2004 21:23

Re: eine Unit in 2 Packages
 
Wenn die Unit keine globalen Variablen, initialization oder finalization enthält, kannst Du es mit {$WEAKPACKAGEUNIT ON} versuchen.

Sanchez 23. Sep 2004 06:46

Re: eine Unit in 2 Packages
 
Zitat:

Zitat von NicoDE
Wenn die Unit keine globalen Variablen, initialization oder finalization enthält, kannst Du es mit {$WEAKPACKAGEUNIT ON} versuchen.

Dieser Ansatz ist bei mir auszuschließen. Da gibts noch so manche "antiquierte" Unit, die voll auf globale Variablen setzt. Aber so wie SirT es nochmals beschrieben hat, funktioniert es auch schon.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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