Форум: "Основная";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
ВнизMessageDlg и язык кнопок Найти похожие ветки
← →
Avsam (2003-03-04 12:27) [0]Не могу найти причину.
При выводе сообщения с помощью
MessageDlg("Test", mtWarning,[mbYes, mbNo, mbCancel], 0);
кнопки отображаются на английском языке.
У коллеги точно такая же строка выводит на немецком.
WindowsXP, немецкая.
Самое интересное, что скомпилировав файл и запустив его на компе коллеги, получаю также английские надписи.
В чем тут дело?
← →
Anatoly Podgoretsky (2003-03-04 12:34) [1]Не может быть, этот ресурс только на английском языке
← →
REA (2003-03-04 12:36) [2]В принципе может, если в system лежит файлик с ресурсами нужного языка и расширением .ger или как там у немцев.
← →
avsam (2003-03-04 12:41) [3]Может, точнее так оно и есть.
В Win2000 было все нормально, на немецком.
Коллега перешел на WinXP Home - тоже все нормально.
Я перешел на WinXp Prof. - стало на английском.
Ну не хочется создавать свое окно, когда есть все готовое.
← →
avsam (2003-03-04 12:42) [4]Где конкретнее в System посмотреть?
← →
REA (2003-03-04 12:44) [5]Файлы те же, что и bpl, используемые в проекте (если таковые есть), а расширение соответствует языку системы.
← →
smok_er (2003-03-04 12:51) [6]>>Ну не хочется создавать свое окно, когда есть все готовое.
MessageBox(Handle, "message",...) не устраивает?
← →
avsam (2003-03-04 12:54) [7]Да. Есть такие.
расширение .de
А кнопки все равно по англ. пишет.
Причем у меня стоит GExpert и в нем есть эксперт для диалогов с предпросмотром.
В предпросмотре - все нормально, на немецком.
При запуске - английский.
← →
REA (2003-03-04 12:59) [8]Он грузит видимо исходя из каких то настроек языка (детально логику см. в Help по локализации приложений).
Можно это форсировать - грузить ресурс принудительно. См. там же.
Можно менять во время работы приложения текущий языковой ресурс. См. там же.
← →
avsam (2003-03-04 13:02) [9]> smok_er
Да.
MessageBox(Handle,...) показывает правильно на немецком.
В чем же тогда проблема?
← →
avsam (2003-03-04 13:07) [10]Похоже точно проблема в локализации.
Например, TBitBtn при выставленном Kind = bkCancel, например, текст показывает тоже на английском.
Забыл сказать, Delphi 6, тоже немецкая.
← →
REA (2003-03-04 13:11) [11]У них разный механизм. MessageBox это API функция, а MessageDlg - это Delphi функция. Если изменился язык в MessageBox, это вовсе не значит, что изменится и в других ресурсах (сообщения об ошибках например).
← →
Basilio (2003-03-04 13:27) [12]MessageBox использует настройки System.SysLocale (эти значения берутся из системы самой delphi апишными вызовами) в то время как MessageDlg всегда использует английский.
для того, чтобы каждый раз не вычислять handle для MessageBox можно использовать Application.MessageBox.
Есть соображения повозится с SetThreadLocale, но она работает только под NT/XP, и чего-то у меня не получилось..
← →
smok_er (2003-03-04 15:09) [13]>>для того, чтобы каждый раз не вычислять handle для MessageBox можно использовать Application.MessageBox.
Зачем усложнять задачу? MessageBox(Handle, ....)
В данном случае переменная Handle - это член класса TForm, содержащая в себе хандл формы, из которой произошел вызов функции...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c