Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
14-39467
Step[B.M.]
2003-02-27 01:00
2003.03.13
Помогите пожалуйста. Как этих два файла slider.pas и slider.res


1-39302
Term
2003-03-04 09:38
2003.03.13
Серверы Автоматизации..........


6-39446
CVV
2003-01-23 13:27
2003.03.13
Сети


4-39636
Max2002
2003-01-23 12:35
2003.03.13
поиск текста в TWebBrowser


3-39175
explorer
2003-02-20 08:40
2003.03.13
Locate