Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.02.12;
Скачать: CL | DM;

Вниз

Замена 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
15-1319708929
Kerk
2011-10-27 13:48
2012.02.12
FireMonkey Webinar Announced


15-1319498590
Kerk
2011-10-25 03:23
2012.02.12
Умер John McCarthy


2-1318507172
Nucer
2011-10-13 15:59
2012.02.12
Самый быстрый способ считать маленький файл в строку


2-1320150226
начинающий_
2011-11-01 15:23
2012.02.12
конструктор / деструктор


15-1319117051
OW
2011-10-20 17:24
2012.02.12
Вопрос по настройке портов.