Страница 1 из 1
Автопереключение раскладки
Добавлено: 28 Март 2014, 16:25
Андрей
Прошу прощения если уже было, тогда пошлите на.... ссылочку
Как автоматически переключать с РУС на ENG при переходе в определенное поле и переключать наоборот при выходе с него ?
Re: Автопереключение раскладки
Добавлено: 28 Март 2014, 16:29
Андрей
Необязательно переключать раскладку, может быть перехватывать нажатия клавиш и преобразовывать каждый символ на лету ?
Re: Автопереключение раскладки
Добавлено: 28 Март 2014, 20:31
Дед Пахом
переключение реализуется с помощью WinAPI LoadKeyboardLayout(), ActivateKeyboardLayout(), UnloadKeyboardLayout()
Re: Автопереключение раскладки
Добавлено: 30 Март 2014, 21:21
Андрей
Спасибо !
Re: Автопереключение раскладки
Добавлено: 31 Март 2014, 10:10
kreator
Давным-давно выкладывали пример и удобную функцию.
Описание Win-API функций:
Код: Выделить всё
GetKeyboardLayout(DWORD),HKL,pascal
GetKeyboardLayoutNameA(*LPSTR),BOOL,pascal,raw
Функция переключения:
Код: Выделить всё
HKL EQUATE(UNSIGNED)
SwitchKBD Procedure (KBDLayout)
AKL HKL
TMP CSTRING(20)
loc:i Long
Code
loc:i = GetKeyboardLayoutNameA(Tmp)
if Tmp<>KBDLayout
AKL = ActivateKeyBoardLayout(1,0)
end
Пример использования:
Код: Выделить всё
case field()
of ?COU:NameLat
orof ?COU:FullNameLat
SwitchKBD(Latin)
else
SwitchKBD(Russian)
end
Re: Автопереключение раскладки
Добавлено: 31 Март 2014, 10:41
Андрей
А еще бы выложили раздел Global Includes
Re: Автопереключение раскладки
Добавлено: 31 Март 2014, 13:15
kreator
Вот это имеется ввиду:
Код: Выделить всё
Latin CSTRING('00000409')
Russian CSTRING('00000419')
HKL EQUATE(UNSIGNED)
Или что?
Re: Автопереключение раскладки
Добавлено: 31 Март 2014, 13:51
Андрей
Наверно еще не хватает описания
ActivateKeyBoardLayout ?
Re: Автопереключение раскладки
Добавлено: 31 Март 2014, 14:04
kreator
Сорри.
Код: Выделить всё
ActivateKeyboardLayout(HKL,UNSIGNED),HKL,pascal
Re: Автопереключение раскладки
Добавлено: 31 Март 2014, 22:20
Андрей
Спасибо !