AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Resourcendatei wird nicht erzeugt

Ein Thema von Jens Schumann · begonnen am 14. Okt 2007 · letzter Beitrag vom 15. Okt 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#1

Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 10:11
Hallo,
ich verwende in einigen Projekten die Resourcendatei jsl.rc. Seit D5 ist es möglich die rc-Datei dem Projekt hinzuzufügen.
Dann wird die dazugehörige res-Datei automatisch beim erzeugen des Projektes erstellt und hinzugelinkt.

Jetzt versuche ich das gleiche mit D2006 Turbo. Aber irgendwie funktioniert das nicht. Die res-Datei wird nicht generiert.
Code:
[Pascal Fehler] E1026 Datei nicht gefunden: 'jsl.res'
Delphi-Quellcode:
program tpm;

{$R 'jsl.res' 'jsl.rc'}



uses
  Forms,
  tpm_main in 'tpm_main.pas{FormTpmMain},
  at_datamodule in 'at_datamodule.pas{DM: TDataModule};

{$R *.res}

begin
  Application.Initialize;
  Application.Title := 'TPM';
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFormTpmMain, FormTpmMain);
  Application.Run;
end.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 10:40
Das hat bei mir, Delphi 6 Personal, noch nie funktioniert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 10:42
also bei mir auch nicht
Martin
  Mit Zitat antworten Zitat
taktaky
(Gast)

n/a Beiträge
 
#4

Re: Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 11:07
Verschiebst Du die Zeile in die richtige Stelle!
Delphi-Quellcode:
program tpm;

//{$R 'jsl.res' 'jsl.rc'}



uses
  Forms,
  tpm_main in 'tpm_main.pas{FormTpmMain},
  at_datamodule in 'at_datamodule.pas{DM: TDataModule};

//....

implementation // !!!

{$R *.res}
{$R 'jsl.res' 'jsl.rc'}  // da soll sein

begin
  Application.Initialize;
  Application.Title := 'TPM';
  Application.CreateForm(TDM, DM);
  Application.CreateForm(TFormTpmMain, FormTpmMain);
  Application.Run;
end.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 12:14
Zitat von Luckie:
Das hat bei mir, Delphi 6 Personal, noch nie funktioniert.
ich habe die Professional Versionen für D5 und D7. Da funktioniert das einwandfrei. Das mache ich schon solange das ich mich gar nicht mehr daran erinnere wie man Resourcendateien manuell erstellt. Vor langer Zeit habe ich dafür den Borland Resourcenworkshop verwendet.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 12:15
Zitat von taktaky:
Verschiebst Du die Zeile in die richtige Stelle!
Unglaublich. Aber es funktioniert.

Vielen Dank
I come from outer space to save the human race
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 14:35
Hallo,

wer von euch verwendet erfolgreich das Schlüsselwort "implementation" im Projekt-Quelltext - und warum?

Und wer stellt hier mal ein Minimalprojekt ein, welches die automatische Umwandlung eines RC-Skriptes in eine RES-Datei zeigt? Nach euren Darstellungen hier genügen da ja 10 Zeilen. Ich würde mich freuen, wenn mir nach vielen Jahren endlich jemand beweisen könnte, dass dieses Feature kein Mythos ist. Bisher genügte mir das Löschen der irgendwo vorhandenen RES-Datei um das Feature zu deaktivieren.

Nach meinen bisherigen Beobachtungen werden Direktiven in der Form {$R FILENAME.RES FILENAME.RC} an den Resource Linker RLINK32 übergeben. Dazu wird nur der erste Dateiname ausgelesen, der Rest wird verworfen. Das macht der Delphi Preprocessor bei allen Direktiven so - was nach dem dokumentierten Teil steht, wird ignoriert.

Was mich auch noch interessiert: Wie kommt man auf sowas? Gibt es eine Stelle in der Dokumentation, die ich bisher übersehen habe? Oder wird hier ein Treppenwitz aus dem Usenet kolportiert? Ich bin dankbar für jeden Beleg, vorzugsweise Primärquellen.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 16:41
Zitat von Luckie:
Das hat bei mir, Delphi 6 Personal, noch nie funktioniert.
Neh, da muss ich wieder sprechen. Delphi 6 PE macht das ohne Probleme so lange der Path
stimmt. Das eigentliche hinzufügen einer Resourcedatei uberlässt man am besten Delphi selbst
in dem man über <Umschalt> + <F11> in der Dropdownbox die bzw. Resourcedateienformat *.rc
auswählt.

Damit das fuktioniert muss die Anweisung als erstes im Programm
aufgerufen werden. Das Funktioniert in der nonVCL sowie in der VCL.
Mehrfachaufrufe sind auch ohne weteres machbar.

Delphi-Quellcode:
program Fussel;

{$R 'resources\resources01.res' 'resources\resources01.rc'}
{$R 'resources\resources02.res' 'resources\resources02.rc'}

uses
  Windows,
  Messages,
  uMain in '_units\uMain.pas';

// ...
Wenn man eine Resourcedatei an Anderer Stelle einbindet
fuktioniert das erstllen der *.res nicht mehr.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 17:39
@marabu:
Zitat von Delphi 5:
Typ Parameter
Gültigkeitsbereich {$R filename}
{$RESOURCE filename}{$R *.xxx}
{$R filename.RES filename.RC}
Gültigkeitsbereich Lokal
Anmerkungen

Die Direktive $R legt den Namen einer Ressourcendatei fest, die in eine Anwendung oder eine Bibliothek eingebunden werden soll. Dabei muß es sich um eine Windows-Ressourcendatei handeln. Die vorgegebene Namenserweiterung ist RES. Wenn der Dateiname ein Leerzeichen enthält, schließen Sie ihn in halbe Anführungszeichen ein: {$I 'Meine Datei'}.
Das Symbol * hat in $R-Direktiven eine spezielle Bedeutung. Es steht für den Namensstamm (ohne Erweiterung) der Quelltextdatei, in welcher die Direktive enthalten ist. In der Regel weist eine Ressourcendatei einer Anwendung (RES) denselben Namen auf wie die zugehörige Projektdatei (DPR). In diesem Fall bewirkt die Verwendung von {$R *.RES} in der Projektdatei, daß die zugehörige Ressourcendatei mit der Anwendung verknüpft wird. Analog weist eine Formulardatei (.DFM) in der Regel denselben Namen auf wie ihre Unit-Datei (PAS); durch Verwendung von {$R *.DFM} in der PAS-Datei wird die entsprechende Formulardatei mit der Anwendung verknüpft.

{$R Dateiname.RES Dateiname.RC} bewirkt, daß die RC-Datei in der Projektverwaltung von Delphi enthalten ist (hierzu müssen die beiden "Dateinamen" übereinstimmen). Wenn der Benutzer die RC-Datei von der Projektverwaltung aus aufruft, wird der Editor für String-Tabellen aufgerufen.
Wenn Sie die Direktive {$R Dateiname} in einer Unit verwenden, wird der angegebene Dateiname einfach in der resultierenden Unit-Datei gespeichert. Es wird zu diesem Zeitpunkt nicht geprüft, ob der Dateiname korrekt ist und eine vorhandene Datei bezeichnet.

Beim Linken einer Anwendung oder einer Bibliothek (nach dem Compilieren des Programms bzw. der Bibliotheksquelldatei) erfolgt die Verarbeitung aller Ressourcendateien, die in den benutzten Units und im Programm bzw. in der Bibliothek angegeben sind. Dabei werden die Ressourcen aller Ressourcendateien in die ausführbare Datei kopiert. Während der Ressourcenverarbeitung sucht der Linker von Delphi nach den RES-Dateien. Diese Suche erfolgt in dem Verzeichnis, in dem auch das Modul mit der Direktive $R liegt. Außerdem werden alle Verzeichnisse durchsucht, die im Eingabefeld Suchpfad der Registerkarte Verzeichnisse|Bedingungen im Dialogfeld Projektoptionen (bzw. mit der Option /R in der DCC32-Kommandozeile) festgelegt wurden.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#10

Re: Resourcendatei wird nicht erzeugt

  Alt 14. Okt 2007, 17:53
Zitat von marabu:
Und wer stellt hier mal ein Minimalprojekt ein, welches die automatische Umwandlung eines RC-Skriptes in eine RES-Datei zeigt? Nach euren Darstellungen hier genügen da ja 10 Zeilen. Ich würde mich freuen, wenn mir nach vielen Jahren endlich jemand beweisen könnte, dass dieses Feature kein Mythos ist.

Upps, habe ich den Beitrag übersehen ?

Suche dir ein Opensource Programm von mir hier in der DP. Ich mache es schon viele Jahre so
wie beschrieben.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 17:37 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