Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   mehrere Ressourcendateien mit Stringliste verwenden (https://www.delphipraxis.net/177698-mehrere-ressourcendateien-mit-stringliste-verwenden.html)

JohannesK 21. Nov 2013 15:45


mehrere Ressourcendateien mit Stringliste verwenden
 
Hallo,

ich habe ein Problem mit der Nutzung von Ressourcen

Wir verwenden die gleiche Unit (z.B. Buchungsroutine) in mehreren DLL's die jeweils ihre eigenen Ressourcendateien für die Anzeige von Meldungen haben.
Die mehrfach benutzte Unit (u_repSupp.pas) sollte jedoch immer die eigenen Meldungen aus {$R RepSupp.res} verwenden.
Die Meldungen für die DLL selbst stehen in {$R PR_LimsMB.res}.

Delphi-Quellcode:
library PR_LimsMB;

uses
  SysUtils,
  Classes,
  ....
  U_reportSupp in '..\Allg_units\U_reportSupp.pas';

{$R PR_LimsMB.res}
{$R RepSupp.res}
Die unit u_repSupp.pas enthält die eigene Ressource auch noch einmal.
Delphi-Quellcode:

unit U_reportSupp;

interface
...

implementation

{$R RepSupp.res}
Es wird aber immer nur die als letzte aufgeführte Ressource aus der Library-Datei geladen, die vorher aufgeführte wird verworfen.
Gibt es hier eine Möglichkeit beide jeweils an der richtigen Stelle zu verwenden?

Freue mich über jeden Tipp!

Johannes

Blup 21. Nov 2013 16:45

AW: mehrere Ressourcendateien mit Stringliste verwenden
 
Ressourcen werden nicht an die Unit gebunden, sondern an die jeweilige Anwendung oder DLL.
Werden mehrere Resourcendateien verwendet, müssen die Resourcen eindeutig bezeichnet sein.

In deinen Fall würde ich entweder allen Resourcen in "RepSupp.res" oder "PR_LimsMB.res" ein festes Präfix verpassen.

JohannesK 21. Nov 2013 17:07

AW: mehrere Ressourcendateien mit Stringliste verwenden
 
Danke für den Input.

Meine Identifier sind so aufgebaut:

1000
2000 usw - Sprachpräfix

100
200 usw - Unit-Präfix

d.h. Meldung 13 in einem bestimmten Formular mit Unit Präfix 200 in Deutsch hat die ID 1213.

Wenn ich Dich richtig verstehe schlägst Du vor, zB allen Meldungen in meiner RepSupp.res noch zB 10000 draufzuschlagen, dass die ID dann 11213 wäre? Damit wären keine Überschneidungen vorhanden.

Johannes

himitsu 21. Nov 2013 17:47

AW: mehrere Ressourcendateien mit Stringliste verwenden
 
Zitat:

Zitat von JohannesK (Beitrag 1236956)
Damit wären keine Überschneidungen vorhanden.

Ja, wenn ich das richtig verstanden hab.

Der Compiler, bzw. genauer der Linker sollte dir auch eine entsprechende Fehlermeldung um die Ohren werfen, vonwegen doppelter Resource.
(wobei ich da immer der Meinung war, daß er dann immer nur die erste verwendet, welche gelinkt wird und die Nachfolgenden mit einer Warnung verwirft)

In deiner ganzen EXE dürfen keine Resourcen mit der selben ID, bzw. dem selben Namen vorkommen.

JohannesK 21. Nov 2013 17:56

AW: mehrere Ressourcendateien mit Stringliste verwenden
 
Ich habe das mal so angepasst und es funktioniert jetzt bei den Testfiles.

Zitat:

Zitat von himitsu (Beitrag 1236963)
Zitat:

Zitat von JohannesK (Beitrag 1236956)
Damit wären keine Überschneidungen vorhanden.

Ja, wenn ich das richtig verstanden hab.

Der Compiler, bzw. genauer der Linker sollte dir auch eine entsprechende Fehlermeldung um die Ohren werfen, vonwegen doppelter Resource.
(wobei ich da immer der Meinung war, daß er dann immer nur die erste verwendet, welche gelinkt wird und die Nachfolgenden mit einer Warnung verwirft)

Genau das tut er - offenbar ist das mit dem verwerfen nicht so ernst gemeint :-D.

Danke für den Support.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 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