Найти тему
Всё и обо всём!

Delphi отлавливаем нажатия клавиатуры.

Обработка клавиатуры.

Для того чтобы отловить нажатия клавишь, нужно подключить таймер, это если вы хотите прослеживать клавиатуру без подключения API функций.

При работе в среде разработки Delphi Borland Enterprise кидаем на форму будущей программы таймер. Ставим интервал 70 миллисекунд. Энаблед ставим в true.

Так же кинем на форму edit.text и в свойствах в значении энаблед поставим false.

Дважды щелчек мышки по таймеру в окне программы и переходим в редактор кода в таймере.

procedure Timer...

begin

if getasyncekeystate (49) <> 0 then

edit.text1:=edit.text1 +'1';

end

getasyncekeystate - понимает что мы хотим узнать нажата или нет клавиша. В скобках 49 это виртуальный номер клавиши 1. Виртуальный номер 13 это пробел, 32 энтер, 50 это 2, 51 это 3 ну и т.д. можете посмотреть их.

<> (Не равно) 0 (нулю) значит нажата.

А раз уж нажата и так как это виртуальный номер клавиши 1, то в эдит текст( который так же за ранее мы поместим на форму нашей будущей программы) будет добавлено значение в виде единицы.

edit.text1 это вообще весь текст едиттекста по этому для того чтоб сохранялся весь вводимый текст с клавиатуры, нужно к существующему тексту прибавлять который будет добавляться.

Теперь компилируем программу, запускаем, жмём клавишу 1 и видим на экране в поле для ввода, которое не активно, записывается единица.

Чтоб вписать всю клавиатуру, просмотрите какой виртуальный код, какой клавише соответствует. Там и символы, и цифры, и рус/англ.

А написание будет выглядеть следующим образом.

if getasyncekeystate (49) <> 0 then edit.text1:=edit.text1 +'1';

if getasyncekeystate (50) <> 0 then edit.text1:=edit.text1 +'2';

if getasyncekeystate (51) <> 0 then edit.text1:=edit.text1 +'3';

И так далее по всем клавишам.

Удачи в прослушивании клавиатуры.