Главная страница
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.011 c
14-95557
AlexLumpov
2002-07-03 21:50
2002.07.29
Как уменьшить rtl60.bpl


3-95221
Loco
2002-07-06 16:36
2002.07.29
Вызов формы


14-95554
MetalFan
2002-07-03 12:08
2002.07.29
Что за файл?


3-95263
aliasman
2002-07-08 10:05
2002.07.29
PLEASE HELP!!!!!!


4-95602
Влад!
2002-05-16 22:24
2002.07.29
MessageBox & MB_RIGHT