![]() |
Laufzeit Package und z.B. ZeosConnection
Hallo!
Hab mich jetzt mal endlich an die Package-Nutzung herangewagt, und mir 2 englische Tut's dazu (verlinkt aus diesem ![]() Das Erstellen und Nutzen grundsätzlich funktioniert auch ganz gut, doch jetzt will ich eine ZConnection dynamisch nutzen, da ich die öfter mal brauche. Dazu folgende Fragen: 1. Ist es sinnvoller (A) die ZConnection-Komponente auf einer Form zu platzieren oder (B) zur Laufzeit der Unit mit Create zu erstellen? (Ich gehe stark von (B) aus...) 2. Wie ich das Package in mein HauptProggi einbinde ist klar, nur wie verweise bzw nutze ich jetzt die ZConnection in diesem Package? Wie kann ich meinen Query z.B. diese ZConnection zuweisen? Hoffe mir kann jemand helfen! Danke im Voraus tyler |
Re: Laufzeit Package und z.B. ZeosConnection
Also ich verzweifel beinahe... mit Müh und Not hab ich nur ein mittelgrosses Projekt zusammengeschustert, und zwar rein schematisch folgendermassen:
Package1: Connectivität zum MySQL-Server (Zeos) in einer Unit Package2: benutzt Package 1 und liefert in Unit1 (DataModule) die SQL und DataSource-Komponenten, und in Unit2 das DBGRid samt irgendwelcher VCL-Kompos. VCL benutzt Unit1. Unit1 benutzt aus Package1 die Unit. jedenfalls in der Theorie. In einem Sample hat das ganze wunderbar funktioniert, nur halt eben mit mit den BDE-Komponenten von Delphi. Wie bewege ich jetzt Unit1/Package2 dazu die Zeos COnnection aus Unit1/Package 1 zu nutzen? Ich sitz hier grad n bisserl hilflos :( tyler |
Re: Laufzeit Package und z.B. ZeosConnection
Bin ich der einzige Delphi-Coder der sich mit Packages beschäftigt oder hab ich mein Problem so umständlich beschrieben :(
egal, nach ein paar Stunden rumknobeln, hab ich es nun geschafft, mit 2 Packages zu arbeiten. Package1 (P1) enthält die ZConnection-Komponente. Package2 (P2) enthält die Form samt ZQuery, DataSet und DBGrid. Hier ist P1 unter uses angegeben, damit die ZQuery auf die ZConnection zugreifen kann. Anwendung1 (A1) das Hauptprogramm. von hier aus wird P2 aufgerufen (bzw. die darin enthaltene Form) Soweit die Theorie. Nun will ich aber ähnlich P2 noch eine Package erstellen, P3, in welchen eine ander ZQuery-Komponente auf P1 zugreifen soll. Ausserdem soll P3 auch auf P2 zugreifen können. Da gibts nun die Fehlermeldung: Die Packages P2 und P3 enthalten beide Unit u_standard (Anm. Die unit aus P1) Na toll. Heisst das also, ich kann jeweils ein Package immer nur von einem anderen benutzen, und niemals mit 2 gleichzeitig? Wo liegt da dann am Ende der Vorteil :( Jemand hierfür vielleicht ne Idee? Danke tyler |
Re: Laufzeit Package und z.B. ZeosConnection
Zitat:
Aber wieso ärgerst Du dich den mit Packages rum? Kompiliere doch alles in eine Anwendung und spare dir doch diese Verkomplizierung. Und wenn du auch noch komplett ohne Laufzeitpackages arbeitest kommst Du mit einer Exe aus die alles enthält - keine tausend Dateien oder Versionskonflikte. |
Re: Laufzeit Package und z.B. ZeosConnection
Zitat:
Hast du eine Klasse, die in beiden benötigt wird, dann lege sie in ein zusätzliches Package. Jetzt können beide ungehindert die Informationen aus diesem laden. ;) Zitat:
Falls ich heute abend mit Zeit gesegnet bin, schaue ich mir dein Problem mal an. Zitat:
Packages sind einer DER Vorteile von Delphi. Sie lohnen sich schon bei mehr als einer Echse pro Projekt. Wer sich mal mit .Net befasst hat wird merken, dass sich die Assemblies weniger an MS' TypeLibs sondern vielmehr an Delphis Packages orientieren. :) |
Re: Laufzeit Package und z.B. ZeosConnection
Erstmal vielen Dank für eure Antworten :)
Zitat:
Package1 - Hauptprogramm Package2 - bietet einige Standard-Ressourcen, die ich immer wieder brauche - wird in P1 nicht erwähnt Package3 - wird nun vom Hauptprogramm aufgerufen, und greift auf P2 zu Package4 - wird auch vom Hauptprogramm aufgerufen, und benötigt auch P2 (wie gesagt, es geht mir um z.B. die ZConnection) - und in P4 soll jetzt P3 als "required" festgelegt werden, hab ich das richtig verstanden? Zitat:
Zitat:
Welche Möglichkeit hätte ich sonst, dass ein Package seinerseits ein anderes aufruft? Mir käme da höchstens noch in den Sinn, dass ein Package über eine Routine des Hauptprogramms ein anderes startet. Dazu müsste aber das Hauptmodule im USES-Bereich stehen... naja, ich probier das morgen nochmal aus! Vielen Dank erstmal für eure Anteilnahme :D tyler |
Re: Laufzeit Package und z.B. ZeosConnection
Zitat:
Wie seine Verteilung aussieht, wird er eh immer mit jedem Update des Programmes so ziemlich alle Packages neu verteilen müssen, da er ja in allen Packages erweiterungen vornehmen wird. Selbst verwende ich keine Packages um bei einer Verteilung nicht hunderte Dateien mit verteilen zu müssen. Zitat:
Zitat:
Zitat:
|
Re: Laufzeit Package und z.B. ZeosConnection
Naja, das Programm reicht schon an die 20 MB Grenze heran. Es geht nicht nur um die Ressourcen, sondern einfach auch um die bessere Verteilung. Ich find's sinnvoller schnell mal ein Package auszutauschen, als ein 20MB Exe-Datei durch die Leitung zu schieben.
Ist ja auch egal, ist halt Geschmackssache. Und irgendwo will ich auch einfach dieses verflixte Problem lösen, und jetzt nicht aufgeben und sagen: Ich brauchs ja nicht so dringend ;) Zum Thema nochmal eine Frage: Müssen die Packages im gleichen Projekt wie die Hauptanwendung liegen, oder sollte ich die lieber in eigenen Projekten kompiliert werden? Ich erhalte immer noch diese verflixte Meldung, dass ein Package bereits in 2 anderen importiert wurde, obwohl ich wirklich NIRGENDS (weder uses noch requires) dieses problematische Package angegeben habe. Es kann also gar keinen Querverweis geben. tyler |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz