Форум: "Основная";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
ВнизКак определить текущий регистр клавиатуры: русский или английский Найти похожие ветки
← →
Владимир2 (2002-04-23 14:21) [0]Из программы.
Это нужно для того,чтобы в отклике "OnKeyDown" определить символ нажатой совместно с ALT или CTRL клавиши. Как сделать это напрямую никто и нигде мне подсказать не смог.
Надежда получить конкретный ответ на мой вопрос мала, но всё-же ...
← →
Song (2002-04-23 14:50) [1]GetKeyboardLayout()
GetKeyboardLayoutName()
← →
PaRL (2002-04-23 14:51) [2]
> Надежда получить конкретный ответ на мой вопрос мала, но
> всё-же ...
Вы хоть FAQ иногда смотрите?
← →
Владимир2 (2002-04-23 18:35) [3]Большое спасибо Song и PaRL за отклик. Ответ на этот мой вопрос я получил.
А есть ли более простой способ в "OnKeyDown" определить символ нажатой совместно с ALT или CTRL клавиши? Т.е. мне нужно в символьную переменную получить символ "U" или "Г", в зависимости от раскладки, если нажаты клавиши (ALT или CTRL)+(U).
Спасибо.
← →
Cobalt (2002-04-23 18:54) [4]А там (в OnKeyDown) кажется есть такой параметр sShiftState - там хранятся состояния Ctrl, Alt и Shift. А в Key - сам символ.
← →
Malder (2002-04-23 18:57) [5]Используй событие OnKeyPress. Там передается var Key: Char то есть именно символ Char. Если раскладка русская, то при нажатии на "i" Key будет равен "ш"
← →
Malder (2002-04-23 19:11) [6]Cobalt, нет. В событии OnKeyDown передается виртуальый код нажатой клавиши - и он не различает кодировок.
Поэтому нужно использовать OnKeyPress, но тоже проблема. В это событие не передается параметр Shift. То есть, не определишь нажат Alt, Ctrl иил нет...
← →
Malder (2002-04-23 19:12) [7]Cobalt, нет. В событии OnKeyDown передается виртуальый код нажатой клавиши - и он не различает кодировок.
Поэтому нужно использовать OnKeyPress, но тоже проблема. В это событие не передается параметр Shift. То есть, не определишь нажат Alt, Ctrl или нет...
← →
Song (2002-04-23 21:06) [8]2Malder © (23.04.02 19:12), Владимир2 (23.04.02 18:35)
Для опредедения Shift"а, а также любых других клавиш можно использовать в onKeyPress GetKeyboardState() или GetAsyncKeyState()
← →
Владимир2 (2002-04-23 21:33) [9]В том-то и дело, уважаемые коллеги, что OnKeyDown даёт один и тот же символ при разной раскладке, а OnKeyPress даёт правильный символ только, если нет Shift"а: если ALT, то в него совсем не попадаешь (это понятно), а если CTRL, то при любой раскладке будет одинаковый непонятный символ.
Поэтому вопрос не так прост, как казался вначале.
Спасибо всем.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c