Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Bibliothek- und Suchpfade (https://www.delphipraxis.net/205409-bibliothek-und-suchpfade.html)

rokli 7. Sep 2020 06:39

Bibliothek- und Suchpfade
 
Guten Morgen zusammen!

Ein Thema, was immer wieder mal hoch kommt, und was immer wieder für Probleme sorgt: Die richtige und(!) vollständige Einstellung der Bibliothek- und Suchpfade im Delphi.

Ich meine mich zu erinnern, dass es im Microsoft VS die Möglichkeit gibt, die ganzen konfigurierten Optionen in eine Datei zu exportieren und bei Bedarf auch wieder zu importieren. Wie ich finde, eine gute Sache.

Weiß jemand, wo bei Delphi diese Einstellungen gespeichert sind, sodass man sich zumindest eine Sicherung dieser Bereiche machen kann?
Oder ob man diese Einstellungen - en bloc - auslesen kann?
Vielleicht gibt es da ja auch ein Tool, welches ich nur nicht kenne, was diese Daten sichert?

Danke für Eure Hilfe!

Beste Grüße
Rolf

Bernhard Geyer 7. Sep 2020 07:19

AW: Bibliothek- und Suchpfade
 
Die Nicht-projektabhängigen Einstellungen sind alle in der Registry gespeichert.
Wenn du den entsprechenden BDS-Zweig deiner Version aus der Registry exportiert, hast du all deine Einstellungen.

Uwe Raabe 7. Sep 2020 07:50

AW: Bibliothek- und Suchpfade
 
Neuere Delphi-Versionen bringen ein Migration-Tool mit. Damit kann man gezielt einzelne Einstellungen der Registry exportieren und auch wieder importieren.

Rollo62 7. Sep 2020 09:34

AW: Bibliothek- und Suchpfade
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1473109)
Neuere Delphi-Versionen bringen ein Migration-Tool mit. Damit kann man gezielt einzelne Einstellungen der Registry exportieren und auch wieder importieren.

Bringt das Migration-Tool auch was wenn ich immer clean in neue VM installieren möchte ?
Also auch alle alten Pfade bewusst rauslösche.

Gibt es da so eine Art Save/Restore der Einstellungen, ich vermute mal nicht ?

himitsu 7. Sep 2020 10:58

AW: Bibliothek- und Suchpfade
 
Genau dafür ist das da.

Einstellungen sichern/kopieren und in gleicher/anderer Version auf gleichem/anderem Rechner Benutzeraccount wiederherstellen.

Rollo62 7. Sep 2020 11:09

AW: Bibliothek- und Suchpfade
 
Ok, muss ich mmir wohl doch mal ansehen.
Bin immer davon ausgegangen dass es nur um Projekt-Migration geht, nicht IDE-Migration.

rokli 7. Sep 2020 11:26

AW: Bibliothek- und Suchpfade
 
Hallo Jungs,

vielen Dank - das war mir nicht bekannt, dass man das mit dem Migrationstool machen kann.

Und auch der Tipp mit der Registry ist interessant und hilfreich!

Vielen Dank!

Delbor 7. Sep 2020 17:50

AW: Bibliothek- und Suchpfade
 
Hi zusammen

Apropos Delphis Bibliothek- und Suchpfade und die Registry: In wohl allen Fällen speichert Delphi alle Repositorys auf C:\, zuweilen auch in verschiedenen Pfaden. Wie erkenne ich die entsprechenden Registry-Einträge? Try and Error-Spiele mit der Registry finde ich eine äusserst schlechte Idee - es sei denn, man weiss sehr gut, was man tut!

Seit der Deinstallation von Delphi10.4.0 zugunsten D10.4.1 und der Installation des letzteren auf C:\ habe ich wieder gute 70GB auf C:\ frei - Windows hate kurz vorher ein 'Windows.Old mit sehr guten 30GB gelöscht.
Trotzdem würde ich gerne Repositorys und Demos auf andere Laufwerke mit mehr Platz auslagern.

Gruss
Delbor

himitsu 7. Sep 2020 18:46

AW: Bibliothek- und Suchpfade
 
In vielen Pfaden werden Variablen wie $(BDSCatalogRepository), $(BDS), $(BDSLIB) oder $(PUBLIC)\Documents\Embarcadero,
da wäre es dann egal in welcher Version ein Pfad mit sowas eingespielt wird.

Bei den absoluten Pfaden auf ein gewisses Installationsverzeichnis/Delphiversion, da sollte das Migrationstool es entsprechend behandeln und anpassen,
denn dafür ist das Migrationstool ja da, damit man eben nicht "blind" irgendwelche Registry-Einträge sonstwo hinspeichert.

SearchBot 26. Aug 2024 13:17

AW: Bibliothek- und Suchpfade
 
Thematisch möchte ich mich hier anschließen.

Ich habe bei der Einrichtung meines Delphi 12 ein paar Komponenten in die Toolleiste hinzugefügt. Damit sie auch gefunden werden (so dachte ich), habe ich in der IDE bei Tools/Optionen/Sprache/Delphi/Bibliothek den Suchpfad um die betreffenden Quellcode-Ordner erweitert.

Nun öffne ich ein Projekt, in dem ich Units verwende, die in diesem Suchpfaden liegen - und tja, die IDE meckert, die Units nicht finden zu können. :roll:

Bleibt mir also nichts anderes übrig, für diese Komponenten in jedem Projekt, das sie verwendet, immer wieder individuell die Suchpfade einpflegen zu müssen?
Wozu ist dann der Suchpfad in den IDE-Optionen da, wenn er in den Projekten ignoriert wird?!

Uwe Raabe 26. Aug 2024 13:20

AW: Bibliothek- und Suchpfade
 
Ist der Bibliothekspfad denn auch in der verwendeten Plattform eingetragen?

SearchBot 26. Aug 2024 14:29

AW: Bibliothek- und Suchpfade
 
Ja, "Ausgewählte Plattform": Windows 32 Bit

Uwe Raabe 26. Aug 2024 14:33

AW: Bibliothek- und Suchpfade
 
In dem Fall muss die Ursache eine andere sein. In der Regel funktioniert das schon so.

SearchBot 26. Aug 2024 16:28

AW: Bibliothek- und Suchpfade
 
Liste der Anhänge anzeigen (Anzahl: 1)
Aber was könnte das sein?

Ich hab ein neues Projekt gestartet und eine Unit aus dem Suchpfad in die uses geschrieben.
Davon hab ich dann eine Screenshot-Collage erstellt - wo liegt der Fehler?

Uwe Raabe 26. Aug 2024 19:03

AW: Bibliothek- und Suchpfade
 
Bei den Bibliothekspfaden muss der Eintrag in Bibliothekspfad! In Suchpfad stehen die Pfade für den Debugger, damit man auch in die Sourcen debuggen kann, die sonst nur als DCU zur Verfügung stehen.

Leider ist das bei der Übersetzung etwas unglücklich gelöst: Im Englischen heißt das dort Browsing path, während das Deutsche Suchpfad mit dem gleichnamigen Eintrag in den Projektoptionen kollidiert, die aber jeweils unterschiedliche Bedeutung haben.

SearchBot 27. Aug 2024 09:52

AW: Bibliothek- und Suchpfade
 
Das verwirrt mich gerade.
Bleiben wir bei der deutschen Version.

Wo muss was stehen?

Globale Einstellung - über das Menü: Tools/Optionen. In diesem Dialog bei "Sprache/Delphi" gibt es u.a. "Bibliothek".
Für die ausgewählte Plattform Windows 32 Bit habe ich hier u.a. den Bibliothekspfad und den Suchpfad.

:?: Und du meinst, alles, was ich jetzt in Suchpfad eingetragen habe, sollte ich in Bibliothekspfad verlegen?

In der Hilfe und Wiki steht aber zum "Suchpfad":
Zitat:

Gibt die Verzeichnisse an, in denen der Quelltext-Browser des Quelltext-Editors nach Unit-Dateien sucht, wenn im Suchpfad oder Quellpfad für das Projekt der gesuchte Bezeichner nicht gefunden wird. Der Quelltext-Editor sucht die Unit-Dateien für den Quelltext-Browser anhand der folgenden Reihenfolge:

Projektsuchpfad für Delphi (Projekt > Optionen > Delphi-Compiler) oder Include-Pfad für C++ (Projekt > Optionen > Verzeichnisse und Bedingungen).
Globaler Suchpfad (diese Option) für Win32-Delphi-Sprachprojekte; die mit dieser Option angegebenen Verzeichnisse werden an den Debug-Suchpfad für das Projekt angehängt. Die Debug-Suchreihenfolge für Unit-Dateien wird daher durch die folgenden Pfadeinstellungen bestimmt:
Suchpfad (diese Option).
Quelltextpfad des Projekts (das Verzeichnis, in dem das Projekt gespeichert wurde).
Aber genau das (rote Markierung im Zitat) habe ich ja mit meiner Screenshot-Collage gezeigt - und es funktioniert nicht!?

:?: Muss ich vielleicht dann zusätzlich in den Projekt-Optionen den Suchpfad mit einer Variable belegen? Welche wäre das?
:?: Oder sollte das normal aus den globalen Einstellungen "geerbt" werden?

Uwe Raabe 27. Aug 2024 10:57

AW: Bibliothek- und Suchpfade
 
Zitat:

Zitat von SearchBot (Beitrag 1540260)
Das verwirrt mich gerade.
Bleiben wir bei der deutschen Version.

Gerade bei der Hilfe trägt das aber häufig erst recht zur Verwirrung bei.

Zitat:

Zitat von SearchBot (Beitrag 1540260)
Globale Einstellung - über das Menü: Tools/Optionen. In diesem Dialog bei "Sprache/Delphi" gibt es u.a. "Bibliothek".
Für die ausgewählte Plattform Windows 32 Bit habe ich hier u.a. den Bibliothekspfad und den Suchpfad.

:?: Und du meinst, alles, was ich jetzt in Suchpfad eingetragen habe, sollte ich in Bibliothekspfad verlegen?

Exakt!

Zitat:

Zitat von SearchBot (Beitrag 1540260)
In der Hilfe und Wiki steht aber zum "Suchpfad":

Da steht aber auch Quelltext-Browser und nicht Compiler.

Beispiel: In deinem Quelltext machst du einen Ctrl-Click in der uses-Anweisung auf System.Classes und - wenn nicht andere Widrigkeiten dazwischen funken - landest du in der entsprechenden Source-Unit. Der Compiler wird aber weiterhin die entsprechenden DCU-Dateien aus dem passenden lib-Verzeichnis nehmen, da er die System.Classes.pas nicht finden kann (soll er auch nicht).

Also was im Source-Editor (Quelltext-Browser) für die Navigation erreichbar sein soll, gehört unter Tools/Optionen/Sprache/Delphi/Bibliothek in den Suchpfad, während der Compiler nur das sieht, was im Bibliothekspfad steht. Natürlich wertet der Quelltext-Browser auch den Bibliothekspfad aus, wenn dort auch pas-Dateien zu finden sind. Man muss dann diese Pfade nicht auch noch im Suchpfad angeben.

Als Beispiel steht im Bibliothekspfad c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release (dort findet der Compiler System.Classes.dcu), während im Suchpfad unter anderem $BDS)source\rtl\common steht (dort findet der Quelltext-Browser System.Classes.pas).

Das sind nur die globalen Pfade für alle Projekte. In den jeweiligen Projekt-Optionen kann man zusätzlich projekt-spezifische Pfade angeben. Dort wird allerdings der Suchpfad vom Compiler (und vom Quelltext-Browser) ausgewertet. Diese unterschiedliche Verwendung des Begriffs Suchpfad hat leider schon öfter für Missverständnisse gesorgt. Im Englischen ist das halt anders.

Die Erläuterungen zu den Debugger-Pfaden spare ich mir erstmal für später auf. Ich will die Verwirrung ja nicht zu groß werden lassen.

SearchBot 18. Sep 2024 08:57

AW: Bibliothek- und Suchpfade
 
Na gut ich hatte es dann hinbekommen und es fand sich alles.

Jetzt habe ich erst alles mit den Migrationstool gesichert, dann die 12.1 deinstalliert, dann die 12.2 installiert und die gesicherte Migrationsdatei wieder eingespielt - es hat eine Weile was gemacht, mit den JEDI-Zeug hatte ich stundenlang nachbessern müssen und Fastreports wollte sich zunächst garnicht installieren lassen (Tipp: Delphi als Administrator starten, dann klappt es mit Fastreports).

Nun öffne ich fröhlich mein Projekt...
:pale:
Die IDE findet meine Units nicht.
In den globalen Pfaden fehlt alles, was ich in Version 12.1 mühsam zusammengetragen habe. Wird wohl nicht vom Migrationstool gesichert :wall:
Edit: nicht alles - nur der Pfad mit meinen Standard-Units für alle Projekte.
Und ich präzisiere: im Bibliothekspfad - habs zuerst im "Suchpfad" nachgetragen (schon wieder falsch gemacht, das hat also weiterhin verwirrt) und nix gebracht - es muss im Bibliothekspfad notiert sein!
Und nach dem Speichern des Dialogs bei Tools-Optionen merkt das die IDE nicht, daß sich was geändert hat. Erst das Formular schließen und erneut öffnen, dann geht das CodeInsight nochmal durch und ist jetzt endlich zufrieden.

Oder wo werden die globalen Pfade gespeichert?
Zitat:

Zitat von himitsu (Beitrag 1473182)
In vielen Pfaden werden Variablen wie $(BDSCatalogRepository), $(BDS), $(BDSLIB) oder $(PUBLIC)\Documents\Embarcadero,
da wäre es dann egal in welcher Version ein Pfad mit sowas eingespielt wird.

Ich habe auch nicht finden können, wo die Pfadvariablen gespeichert werden!?

peterbelow 18. Sep 2024 14:21

AW: Bibliothek- und Suchpfade
 
Zitat:

Zitat von SearchBot (Beitrag 1541096)
Ich habe auch nicht finden können, wo die Pfadvariablen gespeichert werden!?

In der Registry, Computer\HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BD S\23.0\Library, in den diversen subkeys. Die Standard-Makros sind wohl fest verdrahtet, selbst hinzugefügte unter Computer\HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BD S\23.0\Environment Variables.

Man beachte das die Pfade projektspezifisch sind, die Registryeinträge sind der Default (aus dem Tools -> Options Dialog), in den Projektoptionen kann man sie überschreiben, landet dann im DPROJ-File.

himitsu 18. Sep 2024 15:00

AW: Bibliothek- und Suchpfade
 
Zitat:

Zitat von peterbelow (Beitrag 1541137)
Die Standard-Makros sind wohl fest verdrahtet,

über die OpenToolsAPI aus irgendwelchen DesingTimePackages (kann man auch selbst so machen ... vor allem für interactive Macros)

Uwe Raabe 18. Sep 2024 15:09

AW: Bibliothek- und Suchpfade
 
Zitat:

Zitat von peterbelow (Beitrag 1541137)
Die Standard-Makros sind wohl fest verdrahtet, selbst hinzugefügte unter Computer\HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BD S\23.0\Environment Variables.

Allerdings kann man dort auch die Standards überschreiben. Wenn im Dialog Umgebungsvariablen eine Systemvariable oben ausgewählt ist, kann diese über Systemvariable überschreiben - na ja - überschrieben werden.

Die Systemvariablen sind übrigens in %APPDATA%\Embarcadero\BDS\23.0\environment.proj gespeichert. Diese Datei wird beim Start der IDE jeweils neu geschrieben.

himitsu 18. Sep 2024 15:32

AW: Bibliothek- und Suchpfade
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1541143)
Allerdings kann man dort auch die Standards überschreiben. Wenn im Dialog Umgebungsvariablen eine Systemvariable oben ausgewählt ist, kann diese über Systemvariable überschreiben - na ja - überschrieben werden.

Abgesehn von %PATH% kann man sie auch erweitern, also die Variable selbst im Wert verwenden und z.B. Dinge anhängen.

An vielen Stellen muß man aber $(Variable) anstatt %Variable% verwenden, z.B. in den IDE-Optionen, Projektoptionen und Startparametern.

SearchBot 20. Sep 2024 11:04

AW: Bibliothek- und Suchpfade
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1541143)
Die Systemvariablen sind übrigens in %APPDATA%\Embarcadero\BDS\23.0\environment.proj gespeichert. Diese Datei wird beim Start der IDE jeweils neu geschrieben.

Aha. Da in den APPDATA hätte ich wohl nie gesucht :oops:

Sinnvolle Dateinamen für die Inhalte sind auch eine Kunst - was finden wir in "EventsMapping.tma" ?
Auf jeden Fall sieht mir das nicht nach Events aus:
Code:
[MappedTypes]
Pointer=TEnumBindCompProcInfo, TEnumActionProcInfo, TCustomData
Integer=LongInt, SQLInteger, sb4
SmallInt=SQLSmallint
string=DOMString, InvString, UnicodeString
TGUID=TBluetoothUUID
NativeUInt=TRemoteActionHandle, TSocket, LPARAM
NativeInt=THelpEventData
TArray<System.Byte>=TBytes
Cardinal=LongWord, UINT
IInterface=IUnknown
TOleEnum=COREWEBVIEW2_WEB_ERROR_STATUS, COREWEBVIEW2_PROCESS_FAILED_KIND
tagMSG=TMsg
PCHAR=PWIDECHAR
CHAR=WIDECHAR
( :stupid: Aber das hat mit dem Thema nichts zu tun, aber so finde ich es wieder, wenn ich mich mal frage, wo die Deklarationen bestimmter Typen definiert sind; in der Hilfe finde ich das nicht)

Uwe Raabe 20. Sep 2024 11:15

AW: Bibliothek- und Suchpfade
 
Zitat:

Zitat von SearchBot (Beitrag 1541295)
Sinnvolle Dateinamen für die Inhalte sind auch eine Kunst - was finden wir in "EventsMapping.tma" ?
Auf jeden Fall sieht mir das nicht nach Events aus:

Die Einträge geben Synonyme für Parameter-Typen bei Events an. Somit lassen sich alte Event-Handler unter bestimmten Bedingungen weiter verwenden, obwohl die Parameter-Typen in der Signatur formal jetzt andere Bezeichner haben.

himitsu 20. Sep 2024 12:18

AW: Bibliothek- und Suchpfade
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1541143)
Die Systemvariablen sind übrigens in %APPDATA%\Embarcadero\BDS\23.0\environment.proj gespeichert. Diese Datei wird beim Start der IDE jeweils neu geschrieben.

Ja, leider teilweise nur beim Start der IDE. :wall:

https://quality.embarcadero.com/brow...onment.proj%22


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