Форум: "Основная";
Текущий архив: 2012.02.12;
Скачать: [xml.tar.bz2];
ВнизЗамена string ресурсов в runtime Найти похожие ветки
← →
VladM (2010-09-30 10:56) [0]Есть некий компонент, в котором прописаны строки в resourcestring. Для перевода на другой язык, стоит задача подменить эти строки. Нашел следующую реализацию
-----------------------------------------------------------
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.
-----------------------------------------------------------
Данный пример работает, но если текст на который нужно заменять прописан на момент компиляции. Я же подгружаю из файла, во время выполнения, и тут не работает. Даже если в коде написать HookResourceString(@SMsgDlgOK, Label1.Caption); тоже, или пусто или выводит левые строки.
В чем может быть причина (Delphi XE) ?
← →
Сергей М. © (2010-09-30 11:49) [1]
> Для перевода на другой язык, стоит задача подменить эти
> строки
> подгружаю из файла, во время выполнения
Ну так и подгружай из другого файла !
← →
VladM (2010-09-30 12:18) [2]С подгрузкой нет проблем... проблема в том, что то, что я подгружаю не заменяется...
тут дело не в подгрузке...
например так
HookResourceString(@SMsgDlgOK,PChar("aaaa")); - работает
HookResourceString(@SMsgDlgOK,PChar(Label1.Caption)); - не работает отображает "Tahoma"
HookResourceString(@SMsgDlgOK,PChar(Label1.Name)); - работает
решил... типы млин
HookResourceString(@SMsgDlgOK,PWideChar(WideString(Label1.Caption))); - работает
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2012.02.12;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.003 c