Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
629 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Verständnisfrage zur Package-Entwicklung in Delphi

  Alt 28. Jun 2022, 15:03
Zu Frage 1:
Ja du musst den Suchpfad ergänzen, damit du sie in der IDE finden kannst, dabei reicht es aber, wenn du diesen nur bei Browsing Path und nicht unbedingt beim Search Path angibst. Die IDE nutzt den Brwosingpfad, als 2. Suche, wenn die Unit im Search Path nicht gefunden wird. Der Compiler im Gegensatz nutzt NUR den Search Pfad, da du aber Packages nutzen willst, braucht der Compiler die PAS Dateien nicht und nutzt stattdessen die DCU im Package. Zur Info: Ein Package ist nichts anderes als eine Sammlung von DCU's.

Nur so als Info: Wenn du allgemeien für externe Komponenten (z.b. 3rd Party) nur die DCU's im Suchpfad hast, kannst du trotzdem die IDE Debug Features nutzen indem du bei Browsing Pfad das Sourcen Verzeichnis mit den pas Dateien angiebst.

Zur Frage 2:
Wenn du das Package in Release kompilierst wird der Code optimiert und bestimmte Debug features funktionieren nicht mehr. Mann kann aber in den Release Compileroptionen im Prinzip die selben Einstellungen nutzen wie im Debugmode, nur mit dem Unterschied, dass Optimization und Asserts ausgeschaltet werden sollten. Der Rest wie "Debug Infos", "Local Symbols" und "Symbol reference info" etc. haben keinen Einfluss auf die Dateigrösse und ich sehe keinen Grund wieso man das für den Release auschalten sollte. Diese Infos werden in den dcu's gespeichert und nicht in der EXE. Dein Package hingegen würde ich daher ohne diese Einstellguneg erstellen, da so sonst dein Package grösser werden dürfte (da eben eine Sammlung von DCU's inkl. dieser Debuginfos). Bei der Erstellung der EXE hingegen können diese Einstellungen aktiv bleiben, damit auch das MAP File viel mehr nützlche Infos enthält, als bei einem reinen Releasebuild ohen dass die EXE grösser wird. Einzig die Einstellung "Debug Information" unter der Einstellung "Linking" wird deine Anwendung massiv aufblasen. Diese Einstellung brauchst du aber weder zum Debugen, noch für den Release Build und sollte in der Regel immer auf AUS stehen.

Wenn du deine Hauptprogramm so erstellst, dass es PAcakges nutzen soll, wird beim Kompilieren dieses Packge (DCU's darin) genutzt, ohen Pacakges werden die DCU's Dateien genutzt.
  Mit Zitat antworten Zitat