Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Die selben Units in verschiedenen Packages aber wie? (https://www.delphipraxis.net/102297-die-selben-units-verschiedenen-packages-aber-wie.html)

thx.azrael 26. Okt 2007 12:03


Die selben Units in verschiedenen Packages aber wie?
 
Mahlzeit die Damen und Herren,

Mein Problem besteht darin das ich in mehreren Packages (die als Plugins für eine Anwendung dienen) die selben units benötigt werden. Hier handlt es sich um die Units aus dem DirectMySQL Paket. Da ich aber in mehreren Plugins den Datenbankzugriff benötoge habe ich sie auch überall eingebunden.
Ich übergebe also die im Hauptprogramm erstellte SQL Verbindung per Prozedur im Plugin an die jeweiligen Plugins weiter. Soweit so gut... wenn es bei einem Plugin bleibt gehts auch... aber bei zwei oder mehr die den Datanbankzugriff benötigen lädt er die Plugins nicht mehr.
Zur Info: Die Packages werden beim Programmstart alle geladen da aus ihnen heraus auch ein Button in einer Toolbar erstellt wird, der bei OnClick das Frame des Plugins kreiert bzw. das vorherige Plugin Frame mit Free beendet.

Ich hoffe meine Beschreibung des Problems war eindutig genug! Also nochmal meine Frage im Klartext:
Wie kann ich ein und die selbe Unit in verschiedenen, gleichzeitig geladenen, Packages verwenden?


Meine Idee, die funktionieren sollte, die ich aber für völlig unschön halte, wäre es die Units einfach umzubennnen. Weiss nicht ob das geht, aber eigentlich will ich das auch gar nicht...

Schon mal vielen Dank für eure Hilfe...

MFG

Azrael

mschaefer 26. Okt 2007 12:10

Re: Die selben Units in verschiedenen Packages aber wie?
 
Bei gleichen Unitnamen geht es nicht.
Der Weg wäre eigentlich, ein Package mit Deinen DB-Units zusammenszustellen
und dieses Package in Deine weiteren Packages Einzubinden (Package in Package).

Grüße // Martin

Elvis 26. Okt 2007 12:17

Re: Die selben Units in verschiedenen Packages aber wie?
 
Die Units stehen doch wahrscheinlich selbst in einem eigenen Package, welches du einfach ebenfalls als Runtime-Package mitliefern könntest.
In dem Fall würde auch die Echse dieses Package verwendet, anstatt die Units hinein kompostiert zu bekommen.

Lösung 2 wäre es deine PlugIn-API von Klassen/Packages auf Interfaces/DLLs umzustellen.
Dann gibt es gar keine Reibereien mehr und du/deine User können auch mit anderen Versionen von Delphi PlugIns schreiben. (sogar mit FPC und C++, wenn du WideString statt AnsiString)

thx.azrael 29. Okt 2007 06:44

Re: Die selben Units in verschiedenen Packages aber wie?
 
Danke für eure hilfreichen Lösungsvorschläge... ich werd mich dann wohl mal daran machen die units in ein package zu werfen... obwohl ich nnoch nich genau weiss wie ich das machen soll... ich muss ja dann alles was es an properties und Funktionen/Prozeduren gibt exporten und dann in meinen plugins den ganzen kram mir wieder über GetProcAddress() ran holen... mal schauen wie ich das mache...

@Elvis: Das Prob ist das es den sql kram (DirectSQL) wirklich nur als einzelne Units gibt und nicht als eigentliches Package!

mfg


azrael

thx.azrael 30. Okt 2007 11:30

Re: Die selben Units in verschiedenen Packages aber wie?
 
mahlzeit...

so ich hab das jetzt mal hinbekommen... hab mir noch nen package für die Datenbank routinen gebastelt...
kann man jetzt auch als Framework zur Unterstützung verscheidener Datenbanken verwenden...
netter nebeneffekt!

dank nochmal für die schnelle und nützliche Hilfe

mfg

azrael


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