AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein EMB DCE 12 - Resourcen-Datei wird immer überschrieben und *keine* STRINGTABLE möglich
Thema durchsuchen
Ansicht
Themen-Optionen

EMB DCE 12 - Resourcen-Datei wird immer überschrieben und *keine* STRINGTABLE möglich

Ein Thema von paule32.jk · begonnen am 29. Sep 2024 · letzter Beitrag vom 29. Sep 2024
Antwort Antwort
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#1

EMB DCE 12 - Resourcen-Datei wird immer überschrieben und *keine* STRINGTABLE möglich

  Alt 29. Sep 2024, 11:59
Hallo,
in Delphi selbst kann ich keine Stringtable's in den Resourcen-Editor hinzufügen.
Trage ich weitere Einträge per Hand in die .rc Datei, wird diese beim nächsten öffnen des Projektes überschrieben, so dass der ursprüngliche Text in der .rc Datei steht. Irgendwo muss Delphi eine Kopie anlegen, damit die .rc Datei geschrieben wird ???

wenn ich nun STRINGTABLE's verwenden möchte:
Code:
102 STRINGTABLE
BEGIN
  102, "Mein Control Applet"
  103, "Dieses Applet demonstriert, wie man eine CPL-Datei in Delphi erstellt."
END
erscheint beim Aufruf des Resourcen-Compilers rc.exe die Meldung:

Code:
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation.
All rights reserved.

newBDE.rc(1) : error RC2255 : named STRINGTABLEs are not allowed
ist das ein Windows-Problem, weil ich habe noch den Visual Studio C++ Community installiert ?
oder werden StringTables nicht mehr unterstützt.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet

Geändert von paule32.jk (29. Sep 2024 um 12:01 Uhr) Grund: Textformatierung geändert - Windows Eingabeaufforderung macht kein Wortumbruch
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
704 Beiträge
 
Delphi 12 Athens
 
#2

AW: EMB DCE 12 - Resourcen-Datei wird immer überschrieben und *keine* STRINGTABLE mög

  Alt 29. Sep 2024, 14:16
Leg eine neue .rc-Datei an, mit einem anderen Dateinamen als die des Projektes, und binde sie mittels einer $R-Anweisung in einer deiner Kode-Units ein. Du kannst auch die Strings selbst in einer Unit als Resourcestring deklarieren, hast dann aber keine Kontrolle über die verwendeten IDs.
Sie werden im Kode dann wie normale als Const deklarierte Strings verwendet.

Eigene STRINGTABLE-Resourcen anzulegen ist problematisch, da ihre IDs mit vom Compiler erzeugten Resourcen kollidieren können. Wenn man sie unbedingt braucht, z. B. weil sie von einer anderen Anwendung auch verwendet werden, sollte man sie in eine DLL auslagern, die nur Resourcen enthält, und halt von dieser laden (DLL laden per LoadLibraryEx mit LOAD_LIBRARY_AS_DATAFILE flag).
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: EMB DCE 12 - Resourcen-Datei wird immer überschrieben und *keine* STRINGTABLE mög

  Alt 29. Sep 2024, 14:26
ist das ein Windows-Problem, weil ich habe noch den Visual Studio C++ Community installiert ?
oder werden StringTables nicht mehr unterstützt.
Nein, die Datei ist schlicht falsch. Korrekt sieht diese so aus:
Code:
STRINGTABLE
BEGIN
  102 "Mein Control Applet"
  103 "Dieses Applet demonstriert, wie man eine CPL-Datei in Delphi erstellt."
END
Über den Ressourceneditor von Delphi im Menü Projekt kannst du die Datei zwar hinzufügen, aber da dieser Editor den Typ STRINGTABLE nicht unterstützt, wird diese bei einem erneuten Aufruf dort nicht angezeigt. Funktionieren tut es aber.
Du kannst die Datei aber auch einfach in die Projektverwaltung auf das Projekt ziehen und so hinzufügen, dann kompiliert Delphi die Ressource ebenfalls automatisch.

Egal, ob ich die Datei dann in Delphi verändere oder direkt in einem anderen Editor, die Änderungen werden bei mir korrekt einkompiliert und von LoadString geladen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: EMB DCE 12 - Resourcen-Datei wird immer überschrieben und *keine* STRINGTABLE mög

  Alt 29. Sep 2024, 15:40
Nein, die Datei ist schlicht falsch.
Da bin ich mir nicht ganz sicher.
Es gibt mehrere Ressourcen-Compiler, welche teilweise eine unterschiedliche Syntax nutzen.
[add]
Das Komma ist bei beiden RC-Compilern optional,
aber die StringTable kann/darf keinen Namen besitzen (die 102 ist also der Fehler)
[/add]

witzige Sache:
* der Delphi- ähhh Borland-Ressourcencompiler "brcc32.exe" nutzt standardmäßig eine mehr c-ige Syntax mit geschweiten Klammern {}
* der Windows- Microsoft-Ressourcencompiler "rc.exe" nutzt standardmäßig eine mehr pascal-ige Syntax mit BEGIN+END
* aber Beide verstehen Beides (fällt vor allem auf, wenn man die Hilfe liest ... MSDN nutzt überall BEGIN und DocWiki die { )



Innerhalb der .DPK oder .DPR kann man Delphi auch automatisch die .RC kompilieren lassen.
{$R datei.res datei.rc}

Leider kann der zweite Parameter überall angegeben werden, auch in .PAS, wobei er dort bösartig einfach ignoriert wird.
Wenn es klappt, dann siehst du auch im Compiler-Log (Erzeugen), wie vor dem eigentlichen Kompilieren diese Ressource erstellt wird.

Will/Kann man nur RES direkt angeben, dann mußt du selbst die .RC kompilieren oder anders erstellen.
{$R datei.res}
Also vorher mit einem der beiden mitgelieferten RessourcenCompiler (rc.exe oder brcc32.exe) kompilieren
oder z.B. mit einem fremden Ressourcen-Editor erstellen.
$2B or not $2B

Geändert von himitsu (29. Sep 2024 um 15:54 Uhr)
  Mit Zitat antworten Zitat
Alt 29. Sep 2024, 16:04     Erstellt von robothutbui
Dieser Beitrag wurde von TBx gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: EMB DCE 12 - Resourcen-Datei wird immer überschrieben und *keine* STRINGTABLE mög

  Alt 29. Sep 2024, 16:27
ok funktioniert soweit gut - Danke für Eure Tipps.

Den Admin dieses Boards mal kontaktieren, damit die Werbung unten diesen Post entfernt wird.
ist ja schlimm, jetzt kurz vor Weihnachten.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: EMB DCE 12 - Resourcen-Datei wird immer überschrieben und *keine* STRINGTABLE mög

  Alt 29. Sep 2024, 20:18
Es gibt mehrere Ressourcen-Compiler, welche teilweise eine unterschiedliche Syntax nutzen.
Das ist richtig, aber entweder man verwendet nur die fertige .res oder man kompiliert mit Bordmitteln. Wenn man Bordmittel verwendet, ist eine andere Syntax falsch, das meinte ich.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: EMB DCE 12 - Resourcen-Datei wird immer überschrieben und *keine* STRINGTABLE mög

  Alt 29. Sep 2024, 20:42
Joar, wenn man es selbst kompiliert, dann ist die Syntax egal, da ja nur das Ergennis (RES) zählt.
Und da er ja ursprünglich selbst kompilieren wollte.


@Spam: Du kannst den Report-Knopf benutzen. (OK, jetzt nicht mehr, weil ihn schon jemand genutzt hat )
$2B or not $2B

Geändert von himitsu (29. Sep 2024 um 20:45 Uhr)
  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 17:41 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