Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать, установлен ли в сис-ме какой-либо язык? [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо