#1 20.10.2011 17:04:26

Gnietschow
ProMember
Ort: Berlin
Registriert: 20.06.2007
Beiträge: 237

Dateien im Delphi-Suchpfad finden

Hi liebe DelphiDevler,

ich programmiere immer wieder an einem Grafikframework für 3D herum. Dabei fällt ja auch jede Menge Shadercode an. Normalerweise würde ich den Code in eine Datei stopfen diese ins Projekt legen und laden. Allerdings ist es ja ein Framework, welches in mehreren Projekten Anwendung findet. Daher müsste ich bei jedem Projekt die Datei mit hinein kopieren, was allein durch Aufwand und updaten der Datei doof wär. Bisher bin ich dem entgangen, indem ich den Shadercode in mehrzeilige Strings in einer .Pas gespeichert hab, welche im Bibliothekspfad meines Delphis liegt. Das ist allerdings nicht die beste Lösung, da es zumal durch die Stringkommas und Zeilenumbruchszeichen recht unübersichtlich wird, man keine Shaderdateien includieren kann und das schreiben von Shadercode recht unflexibel ist.
Optimal wäre es, wenn ich die Dateien neben meine anderen Frameworkdateien lege und dann vom Code aus sie laden kann. Ich hab allerdings noch nirgendwo gefunden, wie ich im Code den Pfad einer Unit oder die Bibliothekspfade von Delphi auslesen kann. Hat da jemand eine Idee?
Oder vielleicht einen ganz anderen Ansatz?
Ein Mitstudent hatte zum Beispiel vorgeschlagen Projektvariablen zu nutzen, um den Speicherort festzulegen. Allerdings müsste man das auch wieder bei jedem neuen Projekt eintragen. Vielleicht gibts ja noch was automatischeres smile

Danke fürs Lesen big_smile

MfGnietschow


Es gibt 10 Gruppen von Menschen - die die das Binärsystem verstehen und die anderen.  :-)
Vegetarier essen meinem Essen das Essen weg ;)
-------------------------------------------------------------------------------------------------------------------
Der Community-Hub für Videospiele: gameloop.io

Offline

 

#2 26.10.2011 13:55:42

DerPeer
GodlikeMember
Ort: Berlin
Registriert: 04.02.2005
Beiträge: 1291

Re: Dateien im Delphi-Suchpfad finden

Die Idee mit den Projektvariablenist doch gar nicht so schlecht, oder? Eine String-Konstante in eine Unit und diese dann in jedem Projekt mit einbinden. Da könnten ja dann auch andere Nützlichkeiten drinstehen.

Und der Pfad ist ein absoluter Pfad wie c:\Eigene Dateien\Programmieren\Delphi-Projekte\tools\ oder so.

Offline

 

#3 26.10.2011 16:40:29

Gnietschow
ProMember
Ort: Berlin
Registriert: 20.06.2007
Beiträge: 237

Re: Dateien im Delphi-Suchpfad finden

Zitat:

Die Idee mit den Projektvariablenist doch gar nicht so schlecht, oder?

Vom Prinzip her schon, allerdings müsste ich dann bei jedem Projekt eine relative Pfadangabe speichern. Aber manche Projekte liegen in einem SVN-Repository und die Units in einem GIT-Repository. Wir arbeiten zu dritt daran und jeder hat seine Repos, woanders ausgecheckt. Dafür hab ich so noch keine Lösung gehabt.

Ich hab jetzt eine andere Möglichkeit gefunden, was zwar nicht optimal, aber erstmal gut funktioniert:
Ich speichere meine HLSL-Dateien zentral dort, wo das Framework liegt. Alle werden in einer .rc-Datei referenziert. Diese füge ich allen meinen Projekten hinzu. Damit werden die Dateien in eine Ressourcen-Datei mit in die Exe gepackt und sind somit gut verfügbar und liegen auch bei Auslieferung nirgends im Weg. Damit die Ressourcen-Datei immer neu kompiliert wird, lösche ich sie mit einem PostBuild-Ereigniss immer von der Platte. Damit Delphi die Exe neu erzeugt, wenn ich in den Shaderdateien rumpfusche (da es das ja nicht mitbekommt und so die Exe nicht ändert), muss ich vor dem Ausführen, das Projekt mit Shift+F9 neu bauen. Funkioniert schon richtig gut, hab es jetzt auch mit include-Anweisungen erweitert, dass er die Resourcen automatisch ineinander kopiert, wenn man was referenziert.

Trotzdem danke smile


Es gibt 10 Gruppen von Menschen - die die das Binärsystem verstehen und die anderen.  :-)
Vegetarier essen meinem Essen das Essen weg ;)
-------------------------------------------------------------------------------------------------------------------
Der Community-Hub für Videospiele: gameloop.io

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson