[an error occurred while processing this directive]
|
|
если грубо говорить, есть счетчик на каждую клавишу. Он увеличивается на 1 если нажата и обнуляется если нет. Далее алгоритм типа
1. если не нажата, но счетчик был не равен 0 и его величина меньше некоей константы (C_SHORT_PRESS), но больше константы C_TREMOR- шлеш сообщение о коротком нажатии.
2. если нажата, и счетчик больше некоей другой константы (C_SHORT_PRESS)- шлеш сообщение о нажатии (автоповтор), ставиш флажок - идет автоповтор, обнуляеш счетчик
3. если нажата, стоит флаг автоповтора, и счетчик больше еще одной константы (C_AUTO_REPEAT_SPEED)- снова шлеш сообщение о нажатии и обнуляеш счетчик
ну и еще немного мелочей
Итого играя 3-мя константами имееш - задержу автоповтора, скорость автоповтора, фильтр дребезга
C_TREMOR - задержка на дребезг
C_SHORT_PRESS - задержка до автоповтора
C_AUTO_REPEAT_SPEED - скорость автоповтора
ну и посмотри что и где обнулять надо
E-mail: info@telesys.ru