Mega Code Archive

 
Categories / Delphi / Strings
 

How to change resource strings at run time

Title: How to change resource strings at run-time uses Consts; procedure TForm1.Button1Click(Sender: TObject); begin InputBox('Test', 'Enter something', 'Test'); end; procedure HookResourceString(rs: PResStringRec; newStr: PChar); var oldprotect: DWORD; begin VirtualProtect(rs, SizeOf(rs^), PAGE_EXECUTE_READWRITE, @oldProtect); rs^.Identifier := Integer(newStr); VirtualProtect(rs, SizeOf(rs^), oldProtect, @oldProtect); end; const NewOK: PChar = 'New Ok'; NewCancel: PChar = 'New Cancel'; initialization HookResourceString(@SMsgDlgOK, NewOK); HookResourceString(@SMsgDlgCancel, NewCancel); end.