Форум: "Основная";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];
ВнизКак русифицировать надписи на кнопках сообщений пользователю? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c