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

Вниз

Как русифицировать надписи на кнопках сообщений пользователю?   Найти похожие ветки 

 
novill ©   (2002-07-18 10:23) [0]

Уважаемые мастаки, помогите!
У меня программа выдает несколько десятков сообщений (ShowMessage) и диалогов (MessageDlg). Начальник неожиданно потребовал заменить надписи а кнопках на русские. Вместо "Cancel" - "Отмена", "Yes" - "Да",...
Может есть функция, которая позволяет выводить свой тескт на кнопках, или заменить тескт на стандарных сообщениях?
Ну не окнами же все делать! Помогите!


 
Игорь Шевченко ©   (2002-07-18 10:34) [1]

Intergrated Translation Manager - Project/Languages/Add
и редактировать ресурсы для русских надписей.


 
Skier ©   (2002-07-18 11:21) [2]

>novill
А лучше, чтобы не парится с переводом, создай свою
форму, которая будет работать как MessageDlg.


 
Eugene Lachinov ©   (2002-07-18 11:26) [3]

Для MessageDlg изменить константы из Consts.pas,

системный MessageBox

var
hHook : THandle = 0;

procedure ChangeButtonCaption(Dialog : HWnd; ControlID : Integer;
const Caption : string);
begin
SetWindowText(GetDlgItem(Dialog, ControlID), PChar(Caption))
end;

function ChangeCaptions(nCode : Integer;
wParam : WPARAM;
lParam : LPARAM) : LRESULT; stdcall;
begin
Result := 0;
if nCode = HCBT_ACTIVATE then begin
ChangeButtonCaption(wParam, IDYES, "Да");
ChangeButtonCaption(wParam, IDNO, "Нет");
ChangeButtonCaption(wParam, IDCANCEL, "Отмена");
UnhookWindowsHookEx(hHook)
end
end;

function MessageBoxRus(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer;
begin
hHook := SetWindowsHookEx(WH_CBT, @ChangeCaptions, hInstance, GetCurrentThreadID);
Result := MessageBox(hWnd, lpText, lpCaption, uType);
end;


 
Skier ©   (2002-07-18 11:37) [4]

>Eugene Lachinov
Красиво.
А где взял ?


 
Eugene Lachinov ©   (2002-07-18 11:48) [5]

>Skier
Если про MessageBox, то, наверно, из MSDN


 
Skier ©   (2002-07-18 11:53) [6]

>Eugene Lachinov
MSDN - а что это ? (я в сокращениях не очень...)


 
novill ©   (2002-07-18 12:05) [7]

>Игорь Шевченко
>Intergrated Translation Manager
Это что за штука?


 
Eugene Lachinov ©   (2002-07-18 12:05) [8]

В расшифровке и переводе на русский "Библия программиста под Windows" :-)


 
novill ©   (2002-07-18 12:07) [9]

>Eugene Lachinov
Огромное спасибо!
Правда,я не понял, почему остальные кнопки тоже русские.
Еще раз спасибо.


 
Виктор Щербаков ©   (2002-07-18 12:07) [10]

novill © (18.07.02 12:05)
Встроенное средство локализации приложений.


 
Eugene Lachinov ©   (2002-07-18 12:07) [11]

>Skier
В расшифровке и переводе на русский "Библия программиста под Windows" :-)


 
Skier ©   (2002-07-18 12:08) [12]

>Eugene Lachinov
Понял. Спасибо.


 
Eugene Lachinov ©   (2002-07-18 12:14) [13]

>novill
Windows наверно у тебя русский и русифицировать MessageBox не надо


 
novill ©   (2002-07-18 13:07) [14]

Eugene Lachinov, ты прав. :)
Оказалось, достаточно заменить MessageDlg на MessageBox, и все стало нормально.
Остаелся только один вопрос: какого @#$ Дельфи в MessageDlg и Showmesage ставит английские?
Мож кто знает.


 
Eugene Lachinov ©   (2002-07-18 13:16) [15]

>novill
Так ответ был, поменяй названия кнопок в consts.pas Delphi5\Source\ дальше не помню, скопируй его в Delphi5\Lib


 
novill ©   (2002-07-18 13:37) [16]

В consts.pas я менял названия кнопок - ничего не происходило. :(
Я и подумать не мог, что его надо еще и в lib копировать.
Скопировал - получилось :) Но почему? - тайна покрытая мраком, откуда же дельфи брал названия кнопок при измененном consts.pas.
Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2002.07.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.021 c
3-95256
Nikolka
2002-07-09 11:33
2002.07.29
Не запускается приложение с локальной БД


3-95241
Wild
2002-06-21 15:55
2002.07.29
Drag and Drop


1-95286
Georg
2002-07-15 15:49
2002.07.29
TMaskEdit


3-95206
nimble
2002-07-05 08:18
2002.07.29
Запрос


4-95627
Yerba
2002-05-21 14:29
2002.07.29
О установке своего языка