Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Resourcestring laden (https://www.delphipraxis.net/110254-resourcestring-laden.html)

Neutral General 15. Mär 2008 13:27


Resourcestring laden
 
Hi,

Generell ist das ja mit LoadString kein Problem, aber ich habe genau das gleiche Problem wie es hier beschrieben.

Delphi-Quellcode:
resourcestring
  hallo = 'Hallo DP!';
Diesen String will ich jetzt laden. EDatabaseError wurde geraten Stringtables zu benutzen. Das geht aber bei mir nicht. Also es geht schon aber ich will/kann sie nicht benutzen.

Das heißt: Ziel dieses Threads ist wirklich herauszufinden wie man solche Strings laden kann. Das muss ja irgendwie möglich sein...

Gruß
Neutral General

turboPASCAL 15. Mär 2008 15:51

Re: Resourcestring laden
 
Delphi-Quellcode:
resourcestring
  hallo = 'Hallo DP!';

procedure Foo;
begin
  MessageBox(hWnd, PCHAR(hallo), '!', MB_OK);
end;
Das macht Delphi für dich. :wink:

Neutral General 15. Mär 2008 16:58

Re: Resourcestring laden
 
Problem ist aber das ich keinen Zugriff auf die "Resourcestring-Variable" habe.

Also quasi so:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Dings;

resourcestring
  Dings = 'Lala ein String';

end.

{ ------------------------------------------------------------------------ }

unit Dings;

uses Alles; nurNicht_Unit1;

// Muss trotzdem an den Inhalt von "Dings" drankommen!

end.
Gruß
Neutral General

omata 15. Mär 2008 17:01

Re: Resourcestring laden
 
Wie wäre es so...

Delphi-Quellcode:
unit RessourceU;

interface

resourcestring
  Dings = 'Lala ein String';

implementation
end.


unit Unit1;

interface

uses
  DingsU, RessourceU;

implementation
end.


unit DingsU;

uses Alles, RessourceU, nurNicht_Unit1;

// Muss trotzdem an den Inhalt von "Dings" drankommen!

end.
Gruss
Thorsten

sakura 15. Mär 2008 17:01

Re: Resourcestring laden
 
Zitat:

Zitat von Neutral General
Problem ist aber das ich keinen Zugriff auf die "Resourcestring-Variable" habe.

Da hast Du gar keine Chance. Da die Resource IDs der Strings vor dem kompilieren nicht fest vergeben werden und mit dem hinzufügen weiterer Strings (müssen nicht mal unbedingt Resourcestrings sein!) die ID sich immer wieder ändert, gibt es keinen Weg da ran zu kommen.

...:cat:...

Neutral General 15. Mär 2008 17:03

Re: Resourcestring laden
 
Hi,

@omata: Ne so kann ichs auch nicht machen. Wie gesagt - Ich kann/darf nicht tricksen...

@sakura: Das ist schlecht :?

turboPASCAL 15. Mär 2008 17:09

Re: Resourcestring laden
 
Was omata beschreibt hat nichts mit Tricksen zu schaffen. Es ist lediglich eine Unit die halt
in deinem Fall die Stringresourcen enthält.


Zitat:

Zitat von Neutral General
Diesen String will ich jetzt laden. EDatabaseError wurde geraten Stringtables zu benutzen. Das geht aber bei mir nicht. Also es geht schon aber ich will/kann sie nicht benutzen.

Wieso, weshalb und warum frag ich mal ganz dumm ?

Neutral General 15. Mär 2008 17:31

Re: Resourcestring laden
 
Hi turboPASCAL

Naja wie du vielleicht weißt, arbeite ich an einer eigenen VCL.. Und für das OnCreate der Form muss ein Resourcestring in die Exe gepackt werden (wird bei der normalen VCL im Prinzip genauso geregelt, in Form der dfm). Leider ist es etwas nervig manuel eine .res Datei in sein Projekt einzubinden und diese vorher zu erstellen. Viel leichter wäre es wenn man in den Source einfach einen Res-String schreiben könnte und fertig.

Also ums mal deutlich zu machen: Du würdest Borland/Codegear auch was erzählen wenn du die dfm-Datei selbst schreiben müsstest oder?^^

Gruß
Neutral General

omata 15. Mär 2008 17:36

Re: Resourcestring laden
 
Also du möchtest auf einen Ressourcenstring zugreifen, der in der selben Unit deklariert ist -> ok.
Aber was soll dann bitte der Zugriff in einer Unit, die nichts von der anderen Unit weiss, in der der Ressourcenstring deklariert ist?

Sorry, aber ist irgendwie nicht durchdacht.

Gruss
Thorsten

turboPASCAL 15. Mär 2008 18:09

Re: Resourcestring laden
 
Die *.Dfm - Datei ist eine "Eigenentwicklung" von Borland. Die packen das dann als
RT_RCDATA in den Resourcebereich der Datei. Die Infos der Datei lesen sie dann
mit einer eigenen Procedure aus.

So kannst du das ja ggf. auch machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.
Seite 1 von 3  1 23      

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