![]() |
Packages: Best Practices, Tipps und Tricks
Hallo zusammen,
bin gerade dabei meine eigene Komponentensammlung zusammenzubasteln und diese in Packages zu packen. Nun hab ich schon ein paar Dinge über Packages gefunden, was mir so noch nicht wirklich bewusst war. Daher suche ich im Moment gute Artikel über das Thema, kleine "Geheimnisse", Tipps, Tricks, Best Practices etc. Nur was stelle ich mir nun aber darunter vor? Ich weiß z.B. im Moment noch nicht so recht, welche Ordnerstruktur ich insgesamt einhalten sollte bzw. was dabei eben sinnvoll und zu beachten ist! Wo sind die Fallstricke versteckt? Ebenso die Dateinamen der Packages? Klar kann ich gegebene Komponenten-Packete anschauen, aber sehe daran nicht die Gründe, warum es so ist, wie es ist. Ein Beispiel: Zitat:
Hier ein paar Links zum Thema: |
AW: Packages: Best Practices, Tipps und Tricks
Eine Referenz habe ich nicht. Aber dafür einige Jahre Erfahrung (und es waren nicht immer gute :-))
Folgendes ist dabei herausgekommen:
Das wars für den Moment ... wenn mir noch was einfällt, sag ichs. :-) |
AW: Packages: Best Practices, Tipps und Tricks
Na, das ist doch schon mal was ;)
Zitat:
|
AW: Packages: Best Practices, Tipps und Tricks
Wenn du ein Package in der IDE als Projekt offen hast, kannst du in den Projekt-Optionen unter Beschreibung ein LIB-Suffix angeben. Nimm mal an, das Package heißt MyPackage.dpk und das LIB-Suffux ist D15, dann wird beim Compilieren eine MyPackage.dcp und eine MyPackageD15.bpl erzeugt. Der Vorteil ist, daß man beim Required in einem davon abhängigen Package dann nur MyPackage angeben muss. Auch kann die DPR relativ leicht an eine neue Delphi-Version angepasst werden, da lediglich das Suffix geändert werden muss. Da BPLs schon mal gern im Suchpfad liegen, müssen sie für jede Delphi-Version einen anderen Namen haben. Das Suffix bewirkt dies, obwohl das Package selbst seinen Namen behält.
|
AW: Packages: Best Practices, Tipps und Tricks
Zitat:
|
AW: Packages: Best Practices, Tipps und Tricks
Zitat:
Wenn nicht klar ist, was mit "implizit verwendet" gemeint ist: Benötigt ein Package z.B. RTL und VCL so genügt es lediglich VCL anzugeben, da dieses bereits RTL "implizit verwendet". |
AW: Packages: Best Practices, Tipps und Tricks
Zitat:
Und wie gibst du das LIB-Suffix konkret an? Ich habe es damals so probiert, wie es Ray Konopka ![]() |
AW: Packages: Best Practices, Tipps und Tricks
Zitat:
Ich gebe das LibSuffix in den Projekt-Optionen an, verwende aber eigene Verzeichnisse mit den Projekt-Dateien für die einzelnen Delphi-Versionen. Das ist sowieso kaum zu vermeiden, da z.B. die dproj-Dateien nicht abwärtskompatibel sind. Kommt nun eine neue Delphi-Version heraus, kopiere ich das Verzeichnis der letzten auf das neue, lade die Packages und ändere lediglich das Suffix und eventuell noch den DCU-Pfad. BPL- und DCP-Pfad sind eh auf die Standardwerte gesetzt und sind somit Delphi-Versions-neutral. Ein bißchen blöd ist es, wenn neue Units dazu kommen, da die in allen Delphi-Versionen nachgepflegt werden müssen. Allerdings verwende ich aktiv nicht so viele Versionen und es kommen auch nicht so häufig neue Units dazu. Eigentlich bräuchte es eine interne Variable für das Suffix, daß vom Compiler gesetzt wird. Aternativ wäre das auch über ein OptionSet denkbar. Gibt's aber alles noch nicht. |
AW: Packages: Best Practices, Tipps und Tricks
Dem stimme ich mehr als zu. Eine Erfahrung von uns: nicht versuchen mit Delphi zu compilieren wenn man viele aufeinander aufbauende packages gleichzeitig in der IDE nutzt. extern compilieren, wir löschen vor dem compieren grundsätzlich alle binaries (dcu, dcp, bpl) da man nie im überblick hat wenn units versehentlich falsch eingebunden sind und dann fehlerhafte dcu eingebunden werden.
compilerdirektiven in dpk's zur abgrenzung unterschiedlicher delphi versionen funktionieren nicht (wie bereits jem. anmerkte) Zitat:
|
AW: Packages: Best Practices, Tipps und Tricks
Ja, der Uwe hat das genau richtig erklärt.
Vielleicht noch ein Nachsatz: Der Umgang Delphis mit BPL's und DCP's ist gut. Daran sollte man (so man nicht der absolute Freak ist) nichts ändern. Also keinen anderen BPL-Pfad oder DCP-Pfad setzen. Einfach an das halten was Delphi von selbst macht ... da hat man die wenigsten Probleme. Das gilt natürlich nur, wenn es um Delphi-Komponenten geht. Baut man ein eigenes Projekt auf BPL's auf, sollte man sehr wohl diese Pfade selbst definieren. Btw.: das Lib-Suffix kannst du natürlich auch gern per Compiler-Define in der Projekt-Datei bestimmen. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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 by Thomas Breitkreuz