【发布时间】:2010-02-09 14:22:17
【问题描述】:
我正在 D2010 中进行一项简单的本地化工作。我正在处理表单上的所有字符串,因为 ETM 似乎对我的需求有点过头了,其他 3rd 方工具也是如此......(虽然我现在不太确定!)
以下用于更改 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;
【问题讨论】:
标签: delphi