SysFn17/ru: различия между версиями

Материал из KolibriOS wiki
Перейти к навигации Перейти к поиску
м
м ("идентификатор" вместо "код кнопки")
Строка 1: Строка 1:
'''Функция 17''' - получить код нажатой кнопки.
+
'''Функция 17''' - получить идентификатор нажатой кнопки.
  
 
----
 
----
Забирает код нажатой кнопки из буфера.
+
Забирает из буфера идентификатор нажатой кнопки.
  
 
'''Параметры:'''
 
'''Параметры:'''
 
* eax = 17 - номер функции
 
* eax = 17 - номер функции
 +
 
'''Возвращаемое значение:'''
 
'''Возвращаемое значение:'''
 
* если буфер пуст, возвращается eax=1
 
* если буфер пуст, возвращается eax=1
Строка 16: Строка 17:
  
 
'''Замечания:'''
 
'''Замечания:'''
 +
* Идентификатор кнопки задаётся при её создании [[SysFn08/ru|функцией 8]]. Разные кнопки могут иметь одинаковый идентификатор.
 
* "Буфер" хранит только одну кнопку; при нажатии новой кнопки информация о старой теряется.
 
* "Буфер" хранит только одну кнопку; при нажатии новой кнопки информация о старой теряется.
 
* При вызове этой функции приложением с неактивным окном возвращается ответ "буфер пуст".
 
* При вызове этой функции приложением с неактивным окном возвращается ответ "буфер пуст".

Версия от 23:55, 5 апреля 2010

Функция 17 - получить идентификатор нажатой кнопки.


Забирает из буфера идентификатор нажатой кнопки.

Параметры:

  • eax = 17 - номер функции

Возвращаемое значение:

  • если буфер пуст, возвращается eax=1
  • если буфер не пуст, тогда возвращается:
    • старшие 24 бита eax содержат идентификатор кнопки
      • в частности, в ah оказывается младший байт идентификатора;
      • если все кнопки имеют идентификатор, меньший 256, то для различения достаточно ah
    • al = 0 - если использовалась левая кнопка мыши,
      • или бит той кнопки мыши, которая использовалась.

Замечания:

  • Идентификатор кнопки задаётся при её создании функцией 8. Разные кнопки могут иметь одинаковый идентификатор.
  • "Буфер" хранит только одну кнопку; при нажатии новой кнопки информация о старой теряется.
  • При вызове этой функции приложением с неактивным окном возвращается ответ "буфер пуст".