![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Samhein |
|
|||
Башзэфашовец ![]() ![]() Профиль Группа: Участник Сообщений: 282 Регистрация: 27.6.2005 Репутация: нет Всего: 3 |
У меня вот такой вопрос: например, при нажатии клавиши у меня обрабатывается перемещение компонента. При одном нажатии компонент немного перемещается. При зажатии он перемещается непрерывно. Но если нажать какую-нибудь другую клавишу, всё останавливается. Как сделать так, чтобы не было прерывания и клавиши не мешали друг другу?
-------------------- Знаю форум наизусть, но писать еще боюсь |
|||
|
||||
SamBellamy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.5.2008 Репутация: 1 Всего: 1 |
у каждой клавиши есть два события Down - нажата Up - отпущена, с помощью функции GetKeyState можно посмотреть какая клавиша нажата/отпущена , также можно обрабатывать события onkeyup и onkeydown, скорей всего твоя проблема в непродуманном обработчике события.
|
|||
|
||||
Samhein |
|
|||
Башзэфашовец ![]() ![]() Профиль Группа: Участник Сообщений: 282 Регистрация: 27.6.2005 Репутация: нет Всего: 3 |
А можно, пожалуйста, пример?
Это сообщение отредактировал(а) Samhein - 26.1.2009, 07:38 -------------------- Знаю форум наизусть, но писать еще боюсь |
|||
|
||||
SamBellamy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.5.2008 Репутация: 1 Всего: 1 |
можно
![]() предположим будем двигать кнопку с именем button1 по нажатию кнопки Q кинь на форму таймер, установи свойство interval = 50 в обработчике события onTimer напиши if GetAsyncKeyState(byte('Q')) <> 0 then button1.Left := button1.Left + 1; вот и всё.. функция GetAsyncKeyState возвращает значение отличное от нуля если указанная клавиша была нажата после предыдущего вызова GetAsyncKeyState, GetKeyState работает немного по другому. |
|||
|
||||
Samhein |
|
|||
Башзэфашовец ![]() ![]() Профиль Группа: Участник Сообщений: 282 Регистрация: 27.6.2005 Репутация: нет Всего: 3 |
Спасибо огромное! =) Держи свой первый плюс! =)
-------------------- Знаю форум наизусть, но писать еще боюсь |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |