![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать, установлен ли в сис-ме какой-либо язык? [D7, XP]
Alex_C © (2006-05-19 09:38:00)Проблема: при работе с программой для удобства пользователя на некоторых полях надо переключаться на, допустим, русский язык (LoadKeyboardLayout('00000419', KLF_ACTIVATE)), однако перед этим необходимо проверить, а установлен ли данный язык в винде. Как это можно сделать?
Thomas Anders (2006-05-19 13:41:00) [1]С помощью функции EnumSystemLocales() можно определить какие языки установлены в системе. Более подробно см. MSDN.
Elen (2006-05-19 11:35:00) [2]В начале программы воспользуйся GetKeyboardLayoutList. Она вернет тебе указатели на раскладки. Далее в цикле загружай все эти раскладки и по GetKeyBoardLayoutNameузнавай их названия. Это и будет список установленных языков
Sergey13 (2006-05-19 11:33:00) [3]2[9] Alex_C © (19.05.06 11:26)
> Просто думаю, что можно все же и программно узнать
Ну так исключение это тоже не удочкой ловится, а программно, как и хотелось. 8-)
Alex_C (2006-05-19 11:26:00) [4]
> Ну так и лови исключение при переключении с выводом соответствующего
> ругательства.
Ну в общем то мне это тоже в голову и пришло :)
Просто думаю, что можно все же и программно узнать, есть ли такой язык в сис-ме или нет.
Sergey13 (2006-05-19 11:24:00) [5]2 [5] Alex_C © (19.05.06 11:17)
>а вот если русского языка нет - то не пытаться переключаться, а то пользователю выдается ошибка , что такого языка в сис-ме не установлено.
Ну так и лови исключение при переключении с выводом соответствующего ругательства.
Alex_C (2006-05-19 11:23:00) [6]Вот и хотелось бы узнать, какие ф-ции API за это отвечают, а использовать сторонний компонент в данном случае не хотелось бы.
Elen (2006-05-19 11:19:00) [7]Воспользуйся компонентами ALVAS. Это простой вариант. В противном случае пиши на API
Alex_C (2006-05-19 11:17:00) [8]Уточняю ситуацию:
пользователь перешел на поле ввода фамилии. Перед этим все заполнялось на английском языке. Фамилия, если установлен русский язык, должна водится по-русски (как переключать языки я знаю - LoadKeyboardLayout('00000419', KLF_ACTIVATE)), а вот если русского языка нет - то не пытаться переключаться, а то пользователю выдается ошибка , что такого языка в сис-ме не установлено.
Sergey13 (2006-05-19 11:16:00) [9]2[3] Elen © (19.05.06 11:10)
Да я понял. Можно наверное проверить. Но вот перед выводом на экран стоит проверять наличие видеокарты или нет? Или наличие клавы - преде вводом?
Elen (2006-05-19 11:10:00) [10]
> Я так думаю, что на компьютере, на котором "надо переключаться на, допустим, русский язык" он, язык, скорее всего установлен. 8-)
Наверное имеется ввиду переключение раскладки программно без нажатия пользователем клавиш при определенных условиях
Sergey13 (2006-05-19 10:49:00) [11]Я так думаю, что на компьютере, на котором " надо переключаться на, допустим, русский язык" он, язык, скорее всего установлен. 8-)
Elen (2006-05-19 10:45:00) [12]
> Alex_C
Воспользуйся компонентами Alvas