Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2024, 17:07   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 653
По умолчанию Определить, что кнопка зажата сейчас

Код:
 If (GetAsyncKeyState(VK_XBUTTON1) <> 0) or (GetAsyncKeyState(VK_XBUTTON2) <> 0)
Использую такую вот конструкцию, чтобы проверить зажата кнопка

Но если я нажал кнопку, отпустил и потом произошла проверка - она все равно даст результат true

А как сделать так, чтобы результат был true только если кнопка зажата сейчас?
Kronos913 вне форума Ответить с цитированием
Старый 13.03.2024, 17:22   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,730
По умолчанию

Правильно проверять
Цитата:
If the function succeeds, the return value specifies whether the key was pressed since the last call to GetAsyncKeyState, and whether the key is currently up or down. If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState.
там меняются два разных бита
p51x вне форума Ответить с цитированием
Старый 14.03.2024, 02:09   #3
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 163
По умолчанию

Вероятно тогда так:
Код:
If (GetAsyncKeyState(VK_XBUTTON1) and $8000=$8000)
    or (GetAsyncKeyState(VK_XBUTTON2) and $8000=$8000)
    then
 {...}
Там меняются первый и последний биты:
$0001 кнопка была зажата между запросами GetAsyncKeyState
$8000 соответсвенно нажата сейчас. ($8000 это в hex, в bin 1000000000000000)
Причём последний бит сбрасывается если другое приложение вызывало GetAsyncKeyState, так что уповать на него не стоит.
DIONISKA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить какая кнопка была нажата proef Помощь студентам 1 21.08.2013 16:12
Что сейчас популярно? Что сейчас учат в универе? grenles Общие вопросы по программированию, компьютерный форум 43 12.01.2011 00:46
Как определить когда нажата кнопка мыши, если она нажата в совсем другой программе? Iceman Общие вопросы Delphi 2 19.10.2009 19:03
Как определить, какая кнопка нажата? Paul Hindenburg Компоненты Delphi 1 19.02.2009 23:15
процедура, которая будет что-то делать пока зажата клавиша пробел. Porkman Паскаль, Turbo Pascal, PascalABC.NET 4 14.12.2008 03:37