Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
1-95400
Балков Евгений
2002-07-16 10:53
2002.07.29
Как программно отследить перемещение окна


1-95304
Digi
2002-07-17 04:15
2002.07.29
перехватывание сообщений


3-95186
str
2002-07-05 13:48
2002.07.29
Использование *.xls в качестве БД


1-95399
sergey32
2002-07-16 10:28
2002.07.29
Может дурацкий вопрос


7-95574
dana
2002-05-06 13:29
2002.07.29
Как написать прогу тестирующую память и определяющую температуру





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский