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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2009, 19:23   #1
Orodret
Пользователь
 
Аватар для Orodret
 
Регистрация: 12.04.2009
Сообщений: 29
По умолчанию Нажатие кнопок на клавиатуре

Необходимо чтобы переменная q постоянно увеличивалась на 1, когда удерживается пробел

В Unit1.cpp включил функцию:
Код:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,TShiftState Shift)
{
 if(Key==' ')
 q++;
}
А в Unit.h:
Код:
void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
Когда удерживаю нажатым пробел ничего не происходит, подскажите что ещё необходимо добавить чтобы заработало.

Последний раз редактировалось MaTBeu; 15.04.2009 в 20:07.
Orodret вне форума Ответить с цитированием
Старый 15.04.2009, 19:53   #2
Volchara
Пользователь
 
Аватар для Volchara
 
Регистрация: 25.03.2009
Сообщений: 55
По умолчанию

Код:
if (GetAsyncKeyState (VK_SPACE)) q++;
Вроде вот так делается проверка нажатия пробела
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
Volchara вне форума Ответить с цитированием
Старый 15.04.2009, 19:57   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
if (Key == VK_SPACE)
  q++;
pu4koff вне форума Ответить с цитированием
Старый 15.04.2009, 19:57   #4
Orodret
Пользователь
 
Аватар для Orodret
 
Регистрация: 12.04.2009
Сообщений: 29
По умолчанию

Всёравно не работает, может добавить какие-нибудь библиотеки?

Последний раз редактировалось Orodret; 15.04.2009 в 21:14.
Orodret вне форума Ответить с цитированием
Старый 15.04.2009, 22:29   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

У Вас на форме случайно никакая кнопка фокус не забирает? KeyPreview у формы попробуйте выставить в true
pu4koff вне форума Ответить с цитированием
Старый 15.04.2009, 23:44   #6
Orodret
Пользователь
 
Аватар для Orodret
 
Регистрация: 12.04.2009
Сообщений: 29
По умолчанию

Разобрался, нужно было выделить Form1 далее на панельки Object Inspector выбрать Events и 2 раза кликнуть по полю возле OnKeyDown
и уже затем писать:
Код:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if(Key==VK_LEFT)
q=1;
if(Key==VK_RIGHT)
q=2;
}

Последний раз редактировалось MaTBeu; 16.04.2009 в 15:42.
Orodret вне форума Ответить с цитированием
Старый 16.04.2009, 09:06   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

и использовать блоки switch или if..else if...
pu4koff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одновременное нажатие нескольких кнопок DANIЯR Общие вопросы Delphi 8 27.11.2008 21:47
Имитатор нажатие клавиши на клавиатуре SNUPY Общие вопросы Delphi 3 10.11.2008 21:39
Нажатие кнопок SeregaIRK Компоненты Delphi 9 18.09.2008 18:13
Отловить нажатие кнопок Sanek_ntsk Паскаль, Turbo Pascal, PascalABC.NET 2 12.03.2008 17:38
Нажатие кнопок мыши zzzzz Win Api 7 02.12.2007 12:33