![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как русифицировать надписи на кнопках сообщений пользователю? [D5]
novill © (2002-07-18 10:23:00)Уважаемые мастаки, помогите!
У меня программа выдает несколько десятков сообщений (ShowMessage) и диалогов (MessageDlg). Начальник неожиданно потребовал заменить надписи а кнопках на русские. Вместо "Cancel" - "Отмена", "Yes" - "Да",...
Может есть функция, которая позволяет выводить свой тескт на кнопках, или заменить тескт на стандарных сообщениях?
Ну не окнами же все делать! Помогите!
novill (2002-07-18 13:37:00) [1]В consts.pas я менял названия кнопок - ничего не происходило. :(
Я и подумать не мог, что его надо еще и в lib копировать.
Скопировал - получилось :) Но почему? - тайна покрытая мраком, откуда же дельфи брал названия кнопок при измененном consts.pas.
Спасибо!
Eugene Lachinov (2002-07-18 13:16:00) [2]>novill
Так ответ был, поменяй названия кнопок в consts.pas Delphi5\Source\ дальше не помню, скопируй его в Delphi5\Lib
novill (2002-07-18 13:07:00) [3]Eugene Lachinov, ты прав. :)
Оказалось, достаточно заменить MessageDlg на MessageBox, и все стало нормально.
Остаелся только один вопрос: какого @#$ Дельфи в MessageDlg и Showmesage ставит английские?
Мож кто знает.
Eugene Lachinov (2002-07-18 12:14:00) [4]>novill
Windows наверно у тебя русский и русифицировать MessageBox не надо
Skier (2002-07-18 12:08:00) [5]>Eugene Lachinov
Понял. Спасибо.
novill (2002-07-18 12:07:00) [6]>Eugene Lachinov
Огромное спасибо!
Правда,я не понял, почему остальные кнопки тоже русские.
Еще раз спасибо.
Виктор Щербаков (2002-07-18 12:07:00) [7]novill © (18.07.02 12:05)
Встроенное средство локализации приложений.
Eugene Lachinov (2002-07-18 12:07:00) [8]>Skier
В расшифровке и переводе на русский "Библия программиста под Windows" :-)
novill (2002-07-18 12:05:00) [9]>Игорь Шевченко
>Intergrated Translation Manager
Это что за штука?
Eugene Lachinov (2002-07-18 12:05:00) [10]В расшифровке и переводе на русский "Библия программиста под Windows" :-)
Skier (2002-07-18 11:53:00) [11]>Eugene Lachinov
MSDN - а что это ? (я в сокращениях не очень...)
Eugene Lachinov (2002-07-18 11:48:00) [12]>Skier
Если про MessageBox, то, наверно, из MSDN
Skier (2002-07-18 11:37:00) [13]>Eugene Lachinov
Красиво.
А где взял ?
Eugene Lachinov (2002-07-18 11:26:00) [14]Для 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:21:00) [15]>novill
А лучше, чтобы не парится с переводом, создай свою
форму, которая будет работать как MessageDlg.
Игорь Шевченко (2002-07-18 10:34:00) [16]Intergrated Translation Manager - Project/Languages/Add
и редактировать ресурсы для русских надписей.