|
1) Определение состояния клавиш Key. Обычно путем опроса по таймеру с интервалом 20..100мс чтобы подавить дребезг. Старое состояние запоминается.
2) Определение нажатия клавиши - flag = flag |((lastKey xor Key)and Key) - флаг устанавливается по факту нажатия клавиши. Обычно делается там же, где и опрос. Программа опроса только устанавливает флаг.
3) В основной программе проверяется флаг и, если установлен, выполняется необходимое действие и сбрасывается флаг.
4) Если нужен автоповтор действия, то в программе опроса если кнопка нажата некоторое время через определенный интервал времени снова выставляется флаг. Обычно задается 2 параметра - время начала автоповтора AutoStart(0.5..2c) и интервал автоповтора AutoInterval (0.2..1с). Делается с помощью счетчика в программе опроса:
Если кнопка не нажата счетчик устанавливается в AutoStart.
Счетчик уменьшается на 1.
Если счетчик==0, формируется флаг и счетчик устанавливается в AutoInterval. Если допускается автоповтор только на 1 кнопку, счетчик делается 1 на все клавиши.
E-mail: info@telesys.ru