Autor Beitrag
silvio2508
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 22.11.16 13:23 
Ich möchte gern Klartextressourcen automatisch in mein Programm linken lassen.

Beispiel:
object TMeineKlasse
Tag = 1
Name = 'Hello'
end

Normalerweise müssen diese Ressourcen ja compiliert und dann umständlich über rc-Files eingebunden werden.

Delphi linkt aber den Inhalt aus dfm- und xfm-Dateien automatisch und das als Klartext (einfach mit {$R *.dfm} oder {$R *.xfm}).

Ich würde dies gern mit eigenen Ressource-Dateien machen.
Scheinbar wird alles was nicht xfm oder dfm ist, als binäre Ressource interpretiert.

Gibt es eine Möglichkeit, eine weitere Dateiendung bei Delphi zu registrieren oder gar einzustellen?
Oder gibt es weitere Dateiendungen, die als Klartextressource eingebunden werden?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18459
Erhaltene Danke: 1560

W10 x64 (Chrome, IE11)
Delphi 10.1 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 22.11.16 14:15 
Hallo und :welcome:

Du kannst ein eigenes Ressourcenskript benutzen und dieses entweder manuell kompilieren und die resultierende .res einbinden oder du kannst das von Delphi machen lassen:
ausblenden Delphi-Quelltext
1:
{$R Demo.res Demo.rc}					

Dann brauchst du nur noch die Demo.rc:
ausblenden Quelltext
1:
Test TEXT blablub.txt					

Aus dem Gedächtnis geschrieben, sollte so ca. passen. ;-)

_________________
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
silvio2508 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 25.11.16 15:52 
Hallo Jaenicke,

das ist genau die Variante, die ich nicht machen möchte.

Ich habe ziemlich viele (mehrere hundert) Units.
Diese haben derzeit eine zusätzliche binäre Ressource (eigentlich eine .res, die hat aber einen andere Endung).
Eingebunden mit {$R *.<Endung>} in der entsprechenden Unit.

Nun sollen diese Ressourcen in Textressourcen umgewandelt werden.

Das automatische compilieren der Textressource mit
{$R Demo.res Demo.rc}
geht nur, wenn es im Projekt steht. In der Unit darf es nicht stehen.

Leider kennt mein Projekt natürlich nicht alle Ressourcen.
Bzw. die Units (inkl. Ressourcen) werden in vielen Projekten verwendet.
Die Anpassung der Projektdateien ist also tabu.

Darum suche ich eine andere Lösung für das automatische compilieren.

Mein Ansatz (wie schon geschrieben) funktioniert auch.
Aber ich muss als Dateiendung dfm oder xfm verwenden.
Da habe ich ein Problem, wenn die Unit ein Formular ist und bereits eine dfm-Textressourcendatei hat.
Da geht zwar noch xfm, aber wenn jemand eine xfm hätte, würde es nicht gehen.

Darum suche ich nach weiteren Dateiendungen, die Delphi automatisch kompiliert.
Embarcadero schreibt dazu nichts und empfiehlt die automatische Compilierung in der Projektdatei :-(


Also: suche weitere Endungen oder eine Möglichkeit meine Endung bei Delphi zu registrieren, damit diese Textressource mitcompiliert wird.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1047
Erhaltene Danke: 62

Win7
D6 Prof, D7 Prof
BeitragVerfasst: So 27.11.16 16:21 
Hey,

ich verwende für diesen Zweck ein eigenständiges Programm dass mir meine Ressourcen zusammenstellt und eine Unit generiert in der alles als Byte Arrays gespeichert wird. Je nachdem wie groß die Ressourcen sind kann ich die auch komprimiert speichern.
Das Programm lasse ich von Delphi einfach vorm compilieren aufrufen. Schon ist immer alles aktuell.

_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Dubai ist wie ein Kind. Sporadisch gesehen ist es freundlich und fröhlich. Hat man regelmäßig mit ihm zu tuen kann es einen in den Wahnsinn treiben.