0
Отвечен

Быстрая обработка нажатия клавиш

Evgenij Sergeevich 4 недели назад в UROVO обновлен 2 недели назад 9

Здравствуйте.

Имеется код перевода нажатия буквенной клавиши в цифровое представление в 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.

ХОРОШО, МНЕ ПОНРАВИЛОСЬ

Хотелось бы сразу получать всю исчерпывающую информацию.

К примеру - если нужно подключить новый макет, сразу видеть пример тестовой конфигурации в этом же посте, а не задавать дополнительно вопросы как и что сделать.

Оценка удовлетворенности от Evgenij Sergeevich 2 недели назад
На рассмотрении

Добрый день! Такая проблема действительно есть при быстром нажатии. К концу недели выйдет новый драйвер.

UrovoIDD

Макет драйвера устройства ввода

Имя UrovoIDD

Этот драйвер может так же работать как драйвер ввода для BT сканеров включенных в SPP. Для выбора типа сканера предназначен параметр "Адрес устройства" (см метод ПолучитьПараметры)

То есть необходимо добавить двоичный макет с наименованием UIDD,загрузить в него данный архив, и все вызовы RSDriver изменить на вызовы UIDD?

Добрый день! Вы можете посмотреть пример в тестовой конфигурации:

RSDriverAPICore 0.0.9

Работает нормально.Неявные вызовы с новым драйвером не наблюдаются.

Небольшое дополнение.

Когда при открытии окна формы вызываешь свой код"ОбщегоНазначенияКлиент.ПодключитьОбработкуКлавиатуры();"

При нажатии кнопки "Назад" не срабатывает закрытие окна как и должно быть.Но нажатия клавиш с клавиатуры обрабатываются.

Если закомментировать вызовы ОбщегоНазначенияКлиент.ПодключитьОбработкуКлавиатуры(); - обработка клавиш не работает, но нажатие кнопки "Назад" закрывает окно.

Т.Е. когда не включена обработка - работает кнопка "назад", и наоборот.

Сервис поддержки клиентов работает на платформе UserEcho