Вопрос тут возник. В архивах есть пример переключения ru/lat, используя ActivateKeyBoardLayout(1,0). Я им давно пользуюсь.
Если раскладок больше 2, то вроде надо использовать GetKeyboardLayoutList для получения их списка, а затем с ним работать. Но примеров на кларионе что-то не гуглится. А на сях и делфи как-то трудно понять. Никто не делал такое? Как обход можно перебирать раскладки ActivateKeyBoardLayout в цикле, но это как-то не совсем правильно выглядит.
Несколько раскладок клавиатуры
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Несколько раскладок клавиатуры
Вот такой код работает при нескольких раскладка. В параметре KBDLayout передается кодовое значение раскладки (например, "00000409" для английской).
Прототипы.
Код: Выделить всё
SwitchKBD PROCEDURE (STRING KBDLayout)
NewKL UNSIGNED
CurKL CSTRING(20)
CODE
Err# = GetKeyboardLayoutNameA(CurKL)
IF Err#<>0 and CurKL <> KBDLayout
CurKL = KBDLayout
LoadKeyboardLayoutA(CurKL,1)
NewKL = ActivateKeyBoardLayout(CurKL,0)
END
Код: Выделить всё
MODULE('Windows.lib')
ActivateKeyboardLayout(UNSIGNED,UNSIGNED),UNSIGNED,PASCAL
GetKeyboardLayoutNameA(*CSTRING),SIGNED,PASCAL,RAW
LoadKeyboardLayoutA(*CSTRING,SIGNED),PASCAL,RAW
end
C6/C11, ШВС, tps/btrieve.