AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Automatische Compilierung von *.rc-Dateien seitens Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Automatische Compilierung von *.rc-Dateien seitens Delphi

Ein Thema von IngoD7 · begonnen am 22. Jan 2007 · letzter Beitrag vom 22. Jan 2007
Antwort Antwort
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#1

Automatische Compilierung von *.rc-Dateien seitens Delphi

  Alt 22. Jan 2007, 14:57
Weiß eigentlich jemand die Regeln (so vorhanden), nach denen Delphi eine res-Datei automatisch erstellt?

Mal compiliert es bei mir eine rc-Datei, mal nicht. Mal nur, wenn die zu compilierende res-Datei ins Projekt eingebunden ist (per $R), mal auch ohne.

Ich meine nicht die Projekt-Ressourcedatei, die per {$R *.res} eingebunden wird. Ich meine andere Dateien mit eigenem festen Namen, die (ggf. zusätzlich zur *.res) eingebunden werden.

Wahrscheinlich sollte ich erst mal drei Nächte drüber schlafen ... aber irgendwie erkenne ich da keine Logik. Besonders seltsam finde ich die Compilierung einer rc-Datei (und anhängende Erstellung der zugehörigen res-Datei), wenn sie gar nicht ins Projekt eingebunden ist.
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Automatische Compilierung von *.rc-Dateien seitens Delph

  Alt 22. Jan 2007, 15:46
aus einem meiner Projekte:

{$R 'additional.res' 'additional.rc'} statt es einzubinden schreib ichs in den Application oder Unit-Code... beim einbinden scheint der Compiler es nach gutdünken zu machen
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: Automatische Compilierung von *.rc-Dateien seitens Delph

  Alt 22. Jan 2007, 15:49
Die .RC Dateien werden nur dann neu kompiliert (auch beim vollständigen Erstellen), wenn diese geändert wurde. Wenn eine Datei, auf welche die RC Datei verweist, geändert wurde, dann interessiert es den Compiler nicht.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Automatische Compilierung von *.rc-Dateien seitens Delph

  Alt 22. Jan 2007, 16:59
Zitat von cruiser:
aus einem meiner Projekte:

{$R 'additional.res' 'additional.rc'} statt es einzubinden schreib ichs in den Application oder Unit-Code...
Ja, so mache ich es ja auch.

Zitat von sakura:
Die .RC Dateien werden nur dann neu kompiliert (auch beim vollständigen Erstellen), wenn diese geändert wurde. Wenn eine Datei, auf welche die RC Datei verweist, geändert wurde, dann interessiert es den Compiler nicht.
Yepp, zumindest zwischenzeitlich hatte ich das auch mal gedacht. Ich kann in diesem Moment gar nicht sagen, ob ich das so reproduzieren konnte oder nicht. Ich habe mittlerweile soviel herumgestrickst ... Das muss ich nochmal in Ruhe ausprobieren.

Wie ist es damit, dass er eine von mir gelöschte res-Datei von alleine wieder ins Verzeichnis schreibt, obwohl sie nicht zum Projekt gehört (auch nirgends per $R-Anweisung eingeschrieben) und obwohl die rc-Datei auch nicht verändert wurde?
Sagt das jemandem etwas?

Leider habe ich kein Beispiel, bei dem die Kiste sich immer gleich verhält. Immer wenn ich glaubte, zumindest ein immer gleiches Verhalten vorzufinden - wenn auch nicht unbedingt das gewünschte -, machte sie beim nächsten Versuch wieder etwas anderes.
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Automatische Compilierung von *.rc-Dateien seitens Delph

  Alt 22. Jan 2007, 18:27
Kleiner Zwischenbericht:
Zitat von IngoD7:
Wie ist es damit, dass er eine von mir gelöschte res-Datei von alleine wieder ins Verzeichnis schreibt, obwohl sie nicht zum Projekt gehört (auch nirgends per $R-Anweisung eingeschrieben) und obwohl die rc-Datei auch nicht verändert wurde?
Sagt das jemandem etwas?
Ich denke jetzt, das darf ich unter "IDE kaputt gespielt" ablegen. Seit ich einmal alles "auf Null" runtergefahren hatte (alle Ressourcen aus Projekt raus, IDE neu gestartet und dann frischen Mutes auf ein Neues) ist mir das nicht wieder passiert.

Dann zum Thema "Gelöschte res-Dateien erscheinen nicht wieder im Ordner":
Das ist eine komische Sache. Fügt man schön artig nacheinander Ressourcen (also die rc-Dateien) ins Projekt hinzu (Projekt --> Dem Projekt hinzufügen ...), so werden anständig die entsprechenden Einträge in die Projektdatei gemacht und die res-Dateien erzeugt. So weit, so gut.

Löscht man jetzt händisch eine res-Datei aus dem Verzeichnis, so wird sie mit dem nächsten Compilieren automatisch wieder erzeugt.
Löscht man aber mehrere, so wird immer nur eine wieder automatisch erzeugt und die anderen danach nie wieder. Solange, bis man die nun fehlenden Ressourcen einmal aus dem Projekt entfernt und wieder hübsch artig hinzufügt.

Warum das alles so ist, weiß ich nicht. Ich wollte nur besonders schlau sein und Delphi durch Löschen von eingebundenen res-Dateien zwingen, eine Ressource automatisch neu zu kompilieren. Das ist jedenfalls nicht sonderlich empfehlenswert.

Da ich im Moment an einer Console-Anwendung schraube, gilt das hier Gesagte zumindest für solche Projekte.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz