|
0 / 0 / 0
Регистрация: 23.04.2012
Сообщений: 5
|
|||||||||||
Как обработать нажатие кнопки на клавиатуре23.04.2012, 15:29. Показов 2246. Ответов 7
Метки нет (Все метки)
Здравствуйте.
Пытаюсь написать игру ханойские башни Механика игры: над штырями бегает квадратик (объект класса Arrow, класс Arrow, класс Arrow в свою очередь унаследован от класса Control), текущее положение квадратика определяет текущий штырь. По нажатию кнопок вправо/влево на клавиатуре квадратик должен "перепрыгивать" в другое положение. Он, как ни странно не перепрыгивает, иначе я не обратился бы к вам. Помогите найти ошибку. Вот код класса Arrow и связанный с ним код в форме
0
|
|||||||||||
| 23.04.2012, 15:29 | |
|
Ответы с готовыми решениями:
7
Как обработать событие ctrl + нажатие кнопки
Как заставить Check и Radio кнопки обрабатывать нажатие стрелок на клавиатуре |
|
Master of Orion
|
||||||
| 23.04.2012, 16:55 | ||||||
currentpos++; // 0+1=1 currentpos = currentpos % 3 // 1 % 3 = 0; Было 0 стало 0. Поэтому наверное и не скачет.
0
|
||||||
|
0 / 0 / 0
Регистрация: 23.04.2012
Сообщений: 5
|
|
| 23.04.2012, 17:21 [ТС] | |
|
1 % 3 = 1 вроде бы, это ж остаток от деления
Собственно, вопрос решен, тема закрыта, спасибо за помощь.
0
|
|
|
0 / 0 / 0
Регистрация: 23.04.2012
Сообщений: 5
|
|
| 23.04.2012, 17:34 [ТС] | |
|
Выяснил, что на абсолютно пустой форме кнопки отзываются, при добавлении контрола - нет.
Скопировал код из Form1_KeyDown в созданный Arrow_KeyDown, и все заработало, то есть, как мне теперь кажется, при добавлении любого контрола "фокус" или что-то переходит с формы на него и обработчики формы становятся нерабочими
0
|
|
|
Master of Orion
|
|
| 23.04.2012, 17:36 | |
|
XvaN, не знаю как в шарпе, но в дельфи есть компонент ApplicationEvents, который обрабатывает все события, перехватывая их (то есть работают на любом компоненте любой формы), то есть туда забивается KeyPress грубо говоря, и в любом месте он перехватывает управление и делает, что в нем написано (то есть написав в него процедуру (метод), он будет выполнятся для любого компонента формы, как будто у всех них написан этот обработчик). Вы уверены, что в шарпе этого нет, чтобы не дублировать код?
0
|
|
|
0 / 0 / 0
Регистрация: 23.04.2012
Сообщений: 5
|
|
| 23.04.2012, 17:39 [ТС] | |
|
Psilon, думаю, что в шарпе такое где-то обязательно есть, но я пока не знаю, где, пока решил проблему, как сумел=)
Спасибо за хороший совет, постараюсь найти что-то похожее, чтобы не дублировать код.
0
|
|
|
62 / 62 / 15
Регистрация: 03.01.2012
Сообщений: 137
|
|
| 23.04.2012, 18:11 | |
|
Попробуй в обработчике кнопок своего контрола вызвать событие у обработчиков формы
Form1_KeyDown(sender,null);
0
|
|
| 23.04.2012, 18:11 | |
|
Помогаю со студенческими работами здесь
8
Как обработать событие 'Нажатие апплетовской кнопки' в сервлете ? Как в ListView обработать нажатие кнопки и изменить здесь же значение в textView ? Нажатие кнопки на виртуальной клавиатуре
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|