
Быстрая обработка нажатия клавиш
Здравствуйте.
Имеется код перевода нажатия буквенной клавиши в цифровое представление в 1С.
И дальше по коду происходит вывод представления в нужные поля.
В качестве примера:
ПредставлениеПараметра = "";
Если
Параметр = "Scan:58" ИЛИ Параметр = "Scan:158" ИЛИ Параметр = "Scan:172" ИЛИ Параметр = "Scan:217" ИЛИ
Параметр = "Menu" Тогда
ПредставлениеПараметра = "NULL";
ИначеЕсли Параметр = "Scan:30" ИЛИ Параметр = "Scan:48" ИЛИ Параметр = "Scan:46" ИЛИ Параметр = "2" Тогда
ПредставлениеПараметра = 2;
ИначеЕсли Параметр = "Scan:32" ИЛИ Параметр = "Scan:18" ИЛИ Параметр = "Scan:33" ИЛИ Параметр = "3" Тогда
ПредставлениеПараметра = 3;
ИначеЕсли
Параметр = "Scan:523" ИЛИ Параметр = "Scan:522" Тогда
ПредставлениеПараметра = "НажатиеТочки";
ИначеЕсли Параметр = "Enter" Тогда
ПредставлениеПараметра = "НажатиеПотвердить";
ИначеЕсли Параметр = "Bksp" Тогда
ПредставлениеПараметра = "НажатиеСтереть";
Проблема возникает в тот момент, когда происходит быстро нажимаешь на клавиши когда включен режим ввода букв, и осуществляется перевод кода нажатия буквы в цифровое представление.К примеру клавиша "3"(см. вложение).
В режиме ввода чисел данная проблема не возникает.
В момент быстрого нажатия происходит получение представления "нажатиеСтереть",которое, как видно из кода, должно быть получено только при нажатии клавиши "BKSP".Неявным образом происходит вызов нажатия клавиши "BKSP"
А если производить нажатия клавиш с интервалом например в 1 секунду - обработка происходит корректно, и буквенная клавиша отображается в корректном цифровом представлении.
Используется драйвер RSCore.
Сервис поддержки клиентов работает на платформе UserEcho
Модель ТСД UROVO 6200
Добрый день! Такая проблема действительно есть при быстром нажатии. К концу недели выйдет новый драйвер.
UrovoIDD
Макет драйвера устройства ввода
Имя UrovoIDD
Этот драйвер может так же работать как драйвер ввода для BT сканеров включенных в SPP. Для выбора типа сканера предназначен параметр "Адрес устройства" (см метод ПолучитьПараметры)
То есть необходимо добавить двоичный макет с наименованием UIDD,загрузить в него данный архив, и все вызовы RSDriver изменить на вызовы UIDD?
RSDriverAPICore 0.0.9
Работает нормально.Неявные вызовы с новым драйвером не наблюдаются.
Хорошо)
Небольшое дополнение.
Когда при открытии окна формы вызываешь свой код"ОбщегоНазначенияКлиент.ПодключитьОбработкуКлавиатуры();"
При нажатии кнопки "Назад" не срабатывает закрытие окна как и должно быть.Но нажатия клавиш с клавиатуры обрабатываются.
Если закомментировать вызовы ОбщегоНазначенияКлиент.ПодключитьОбработкуКлавиатуры(); - обработка клавиш не работает, но нажатие кнопки "Назад" закрывает окно.
Т.Е. когда не включена обработка - работает кнопка "назад", и наоборот.