ord('.')

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

SAK
постоялец
Сообщения: 158
Зарегистрирован: 17.02.2006 23:45:14
Откуда: Тим
Контактная информация:

Сообщение SAK »

Если честно, то я вообще ничего не понял, ни то каким образом читается клавиатура, ни то как обрабатывается результат, потому остаётся только гадать что и где там не работает. Нет тестового примера, в котором происходят все эти чудеса.
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

SAK писал(а):Нет тестового примера, в котором происходят все эти чудеса.

В обработчике OnKeyPress и OnUTF8KeyPress (правда это Lazarus) код Delete = #127. У других #46 (VK_Delete), еще тут узнал, что и #83 бывает. Поэтому отследить его нажатие невозможно, т.к. эти кода есть и у точки '.' и у 'S' и у F16.
SAK
постоялец
Сообщения: 158
Зарегистрирован: 17.02.2006 23:45:14
Откуда: Тим
Контактная информация:

Сообщение SAK »

#83 - это скан код клавиатуры, он считывается через readkey (с предшествующим #0)

в OnKeyPress код #46 - это точка, Del в OnKeyPress не попадает (хотя, возможно в зависимости от конкретного драйвера клавиатуры или от компонента в котором находится обработчик может проходить как #127)

Нажатие Del как VK_Delete надо ловить в OnKeyDown

Обратите внимание, что VK_Delete - численная константа, а в OnKeyPress Key: Char. А вот в OnKeyDown Key: Word.
Ответить