Я работаю над простой локализацией в D2010. Я обрабатываю все строки в формах, потому что ETM кажется излишним для моих нужд, как и другие сторонние инструменты ... (хотя я не уверен в этом!)
Приведенный ниже код для изменения строк Const.pas считается безопасным для изменения меток кнопок в стандартных окнах сообщений?
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';
Procedure TForm.FormCreate;
begin
HookResourceString(@SMsgDlgOK, NewOK);
HookResourceString(@SMsgDlgCancel, NewCancel);
end;