Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Verschachtelung von packages (https://www.delphipraxis.net/123130-verschachtelung-von-packages.html)

SirTwist 28. Okt 2008 07:36


Verschachtelung von packages
 
Hallo zusammen,

ich habe ein Problem und bräuchte da mal ein paar gute Ideen *seufz*

Ich pflege und hege seit einigen Jahren ein eigenes Package, in dem ich meine eigenen bzw. weiterentwickelten Komponenten zusammenfasse (nennen wir das Package mal "sirtwist"). Nun habe ich eine Komponente, die wiederum auf Komponenten aus einem anderen Package zugreift. Die eigentliche Kompilierung und auch die Installation von "sirtwist" hat einwandfrei funktioniert.

Nun will ich eins meiner Projekte öffnen, die "sirtwist" benutzen und bekomme die Fehlermeldung

Zitat:

Package 'sirtwist' kann nicht geladen werden. Es enthält die Unit 'ipwldap', die auch im Package 'dclipworks6' enthalten ist.
Soll dieses Package beim Laden des nächsten Projekts geladen werden?
Ist es wirklich nicht möglich, in einem Package auf Komponenten eines anderen Package zuzugreifen? Welche Möglichkeiten habe ich, diesen Konflikt zu lösen? Das Package 'dclipworks6' kann ich nicht bearbeiten, das ist ein kommerzielles Paket ohne Sourcecode.

Würde mich über hilfreiche Ideen freuen! Danke schonmal!

Gruß,
SirTwist

nicodex 28. Okt 2008 07:47

Re: Verschachtelung von packages
 
Du kannst 'dclipworks6' beim 'sirtwist'-Package in die 'requires'-Liste aufnehmen.
Dann wird die Unit 'ipwldap' nicht in dein Package eingebunden (sirtwist), sondern die aus dem 'dclipworks6'-Package verwendet.

Es gäbe mit {$WEAKPACKAGEUNIT ON} noch die Möglichkeit, die Unit in beide Packages einzubinden (als Duplikate). Allerdings macht das normalerweise nur Sinn, wenn die Unit nur Schnittstellen definiert (die Unit darf in diesem Fall ohnehin keine 'initilization'/'finalization'-Abschnitte besitzen... siehe Dokumentation).

edit: Sollte es sich bei den ipwldap.pas um unterschiedliche Versionen handeln, dann wird es eklig (Umbenennen deiner ipwldap.pas, da du dclipworks6 nicht kompilieren kannst).


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