| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > управления передвижения компонента при помощи клав |
| Автор: Nikosss 13.1.2007, 13:15 |
| Вопрос по поводу управления передвижения компонента при помощи клавиш клавиатуры (вверх, вниз, вправо, влево). Существуют ли какие-то константы управления этими клавишами? Как это можно реализовать? К примеру switch (Key) { case ... :MoveUp(); case ... :MoveDown(); case ... :MoveRight(); case ... :MoveLeft(); } |
| Автор: CatOleg 13.1.2007, 14:26 |
| VK_LEFT VK_UP VK_RIGHT VK_DOWN |
| Автор: Nikosss 13.1.2007, 17:51 | ||
| Описал вот так функцию, но компонент не реагирует на нажатие клавиш. Или надо делать вызов функции? Что здесь нетак?
|
| Автор: codelord 13.1.2007, 19:28 |
| А где находится фокус ввода?. Пиши это в событии компонента на котором находится фокус ввода. Если это кнопка значит в ней и т.д. |
| Автор: Nikosss 13.1.2007, 20:15 | ||
| В данной ситуации есть Form1 по которой должен двигаться Image54. Я понимаю нужно написать Form1->SetFocus(); Это, как я понимаю, Form1 будет настроена на ввод с клавиатуры. В функции
или нет? |
| Автор: Link90 14.1.2007, 09:07 |
| Надо у формы поставить свойство KeyPreview=true !!! |
| Автор: Nikosss 14.1.2007, 14:11 | ||||
То есть Form1->KeyPreview=true; Пробовал закидывать эту строчку в функцию
, но тем не менее компонент не реагирует на нажатие клавиш. |
| Автор: Nikosss 14.1.2007, 14:30 |
| Разобрался с Form1->KeyPreview=true; , но с этой опцией получается сделать только управление через Numpad клавиши. Для стрелок она не действует. |
| Автор: segmentation_fault 14.1.2007, 16:53 | ||||
Попробуй так:
и.т.д. стрелка вверх вроде бы 97, вниз 113, влево-вправо не помню, разкомментируй строчку:
в коде, тогда узнаешь. |
| Автор: Nikosss 14.1.2007, 18:10 |
| Попробовал раскоментировать, показывает коды клавиш с цифрами, буквами, но стрелок как и ентера не показывает. |
| Автор: segmentation_fault 14.1.2007, 18:19 | ||
странно, у меня показывал. Щас посмотрю, может быть еще какие-то настройки нужны. Добавлено @ 18:30 Прошу прощения, забыл, у меня там управление было через буквы A и Q (вниз и вверх соотв.), стрелок действительно не ловит. |
| Автор: segmentation_fault 14.1.2007, 18:47 | ||
В общем посмотрел, твой первоначальный код:
должен работать нормально, только как тут другие советовали, поставь KeyPreview = true, и еще включи NumLock на своей клавиатуре. |
| Автор: Nikosss 14.1.2007, 23:42 |
| да работает! Спасибо! |