Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Удерживание кнопок клавиатуры |
Автор: Orodret 15.4.2009, 20:25 |
Необходимо чтобы переменная 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); Когда удерживаю нажатым пробел ничего не происходит, подскажите что ещё необходимо добавить чтобы заработало. |
Автор: 586 15.4.2009, 20:30 |
Используй событие OnKeyPress. |
Автор: Orodret 15.4.2009, 20:43 |
А как ей пользоваться? Приведите пример |
Автор: 586 15.4.2009, 20:49 |
Также, как и OnKeyDown. 1. В окне Object TreeView выделяете форму. 2. В окне Object Inspector выбираете вкладку Events. 3. Находите в списке OnKeyPress и два раза кликаете по нему - метод автоматически создастся. |
Автор: Orodret 15.4.2009, 21:01 |
А если мне надо чтобы кнопок OnKeyDown было несколько например VK_LEFT и VK_RIGHT? Удаётся создать только одну |
Автор: 586 15.4.2009, 21:52 | ||||
не происходит потому, что переменную надо вывести на экран ![]()
Несколько кнопок обработать не получится. Будет обрабатываться только одна. Это то же самое, что в блокноте удерживать кнопки 'a' и 'b', в результате будет писаться только 'b'. Можно воспользоваться функцией GetKeyState для проверки состояния второй клавиши:
|
Автор: Orodret 15.4.2009, 22:47 |
Спасибо помогло ![]() |