Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
850 Beiträge
 
Delphi 11 Alexandria
 
#1

Wie String mit LoadString per Namen und per nicht ID laden?

  Alt 9. Okt 2007, 16:42
Ich ändere mit dem folgende Code einen Resource-String mit dem Namen MYTEXT:
Delphi-Quellcode:
var
  Pfad: AnsiString;
  hInst: cardinal;
  s: string;
begin
   Pfad:= 'C:\Test.exe';
   s := 'DasIstEinTest';

   if FileExists(Pfad) then
   begin
     hInst := BeginUpdateResource(Pchar(Pfad), false);
     if hInst > 0 then
       try
         UpdateResource(hInst, RT_STRING, 'MYTEXT', LANG_NEUTRAL, @s[1], length(s));
       finally
         EndUpdateResource(hInst, false);
       end;
   end;
end;
Diesen Resource-String möchte ich nun anhand des Namens auslesen. LoadString benötigt jedoch einen Index. Diesen kenne ich jedoch nicht, da der String eben nach dem Namen abgespeichert wird. Wie kann ich das Problem lösen. Folgenden Code hab ich hier zum Lesen gefunden:

Delphi-Quellcode:
function GetString(const Index: integer) : string;
var
  buffer : array[0..255] of char;
  ls : integer;
begin
  Result := '';
  ls := LoadString(hInstance,
                   Index,
                   buffer,
                   sizeof(buffer));
  if ls <> 0 then Result := buffer;
end;
  Mit Zitat antworten Zitat