Pisząc program który miałby zmieniać zasoby innego programu, napotkałem następujący problem:
Program1 służy do aktualizowania programu2, program2 zawiera tablice stringów
STRINGTABLE
BEGIN
1,"linia1"
END
i chciałem wykorzystując delphi sprawić, aby tekst "linia1" został zastąpiony tekstem "nowalinia".
procedure TForm1.zasoby(str:string);
const
ID1=MakeIntResource(1);
var
U: THandle;
Res: TResourceStream;
begin
Res := TResourceStream.Create(hinstance,ID1,RT_STRING);
U:=BeginUpdateResource(PCHAR(GetCurrentDir+'\program2.exe'),FALSE);
UpdateResource(U, RT_STRING,ID1,LANG_NEUTRAL,Res.Memory,Res.Size);
EndUpdateResource(U, FALSE);
end;
Trochę czasu już się z tym mecze i co bym nie zrobił to i tak nie działa. Przejrzałem
forum i znalazłem tematy z takim samym problem, jednak jakoś pobieżnie traktują
rozwiązanie tego problemu i nie udało mi się poprawić tego kodu tak aby dział.
Co trzeba dodać/zmienić aby parametr str przekazywany do procedury został zapisany na miejscu "linia1"? Byłbym wdzięczny za pomoc. PzDr.