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;