Autor Beitrag
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 376
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Mi 17.01.24 23:54 
Hallo,

ich habe seit vielen Jahren eine Grafik-Unit mit verschiedenen Grafikroutinen in der Anwendung. Die Unit übersetze ich mit einem zugehörigen Testprogramm und die *.dcu speichere ich in einem allgemeinen Verzeichnis für Units ab. Dieses Verzeichnis ist in allen meinen Projekten als Such-Verzeichnis eingetragen. Alles bestens.

Jetzt wollte ich sehr spezielle Grafikelement als *.BMP in meine Grafik-Unit einfügen. Gemacht, compiliert, Testprogramm läuft, *.dcu ins Unit-Verzeichnis kopiert.

Problem: Wenn ich die Unit jetzt in einem anderen Projekt (in einem anderen Verzeichnis) einbinde, dann gibt es beim Compilieren einen Fehler, weil die Resource nicht gefunden wird. Als Abhilfe habe ich jetzt in der Grafik-Unit in dem $R den Resourcennamen mit vollem Pfad für ein spezielles Resourcenverzeichnis angegeben. Funktioniert, aber richtig schön ist das nicht mit der Verteilung von zusammengehörigen Programmelementen.

Hat da jemand eine Idee, wie es besser geht?

Moderiert von user profile iconTh69: Titel korrigiert (Recource -> Resource)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 18.01.24 09:32 
Ich habe gemeinsame Units auch vorkompiliert und in einem Verzeichnis abgelegt. Dafür hatte ich entsprechende Build- und Installationsskripte erstellt. Diese Skripte kopieren aber auch die .res und .dfm Dateien in das gemeinsame DCU-Verzeichnis, damit diese dort gefunden werden, wenn nur dieses Verzeichnis im Bibliothekspfad liegt.
GuaAck Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 376
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Do 18.01.24 22:57 
Hallo Jaenicke,

dann musst Du doch auch den gesamten Pfad zum DCU-Verzeichnis in dem $R... in der jeweiligen Datei Deiner Projekte angeben. Oder etwa nicht?

Gruß
GuaAck
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 19.01.24 08:50 
Nein, denn dann liegt die Datei neben der .dcu im Bibliothekspfad und wird dort ohne Pfadangabe in der Unit gefunden.
GuaAck Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 376
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Fr 19.01.24 23:55 
Merkwürdig: Genau so war mein erster Ansatz, der nicht funktioniert hat. Jetzt habe ich es erneut probiert, und da brauche ich die *.RES nur in dem Verzeichnis, in dem ich meine *.DCU compiliere, aber nicht in meinem allgemeinen Bibliotheksordner, aus dem alle Projekte die *.DCU includieren.

Jedenfalls, jetzt funktioniert es bestens, vielen Dank,
Gruß
GuaAck