Важно (9.07.22)

Если картинки в постах не отображаются, зайдите в блог через прокси. РКН заблокировал поддомены blogger.com на которые загружались картинки.

воскресенье, 27 октября 2013 г.

Работаем с кнопками на Android устройствах

При разработке приложения, как для Android, так и для Windows часто требуется обрабатывать нажатия на хардварные и виртуальные кнопки. В среде разработки для этого уже всё предусмотрено, поэтому я просто опишу несколько примеров.

Внимание! Старая версия заметки более не актуальна, т.к. была написана для Delphi XE5/XE6. Это новая версия заметки, актуальна для Delphi 10.3.* и выше. Если вы всё ещё используете версию Delphi ниже 10.3, то рекомендую обновиться на последнюю версию!

Обновление от 15.11.19.

Для кроссплатформенной обработки используются виртуальные ключи. Firemonkey (FMX) преобразует коды клавиш в константы виртуальных ключей, определённых в этой таблице: System.UITypes: Virtual Keys. Для отлова нажатий, отлично подходят методы «KeyDown» и «KeyUp».

Список кодов для часто используемых кнопок:
  • vkHardwareBack: Integer = $89; - Кнопка «Назад»
  • vkVolumeUp: Integer = $AF; - Кнопка «Увеличить громкость»
  • vkVolumeDown: Integer = $AE; - Кнопка «Уменьшить громкость»
  • vkMenu: Integer = $12; - Кнопка «Меню»
  • vkReturn: Integer = $D; - Кнопка «Enter»

Если вам требуется отловить нажатия кнопок на пульте (Android TV), то придётся ознакомиться с материалом ниже.
Delphi 10.3.1 – Часть нажатий на кнопки пульта не отлавливается, ознакомиться с темой «[РЕШЕНО]: Как отловить кнопки пульта ДУ» и там же забрать решение.
Delphi 10.3.2 – проблема исправлена, никаких фиксов не требуется (Подтверждение).



Примеры: