Entwickler-Ecke

Programmierwerkzeuge - Resource in Unit


GuaAck - Mi 17.01.24 23:54
Titel: Resource in Unit
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 - 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 - 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 - 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 - 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