Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 49

/ вопрос решён /

Здравствуйте, уважаемые эксперты!
Я начал работать с 3D движком DGLEngine.
Делаю "строитель" сцен.
В общем мне нужна фишка такая: мне нужно из моей процедуры перехватить нажатие кнопки и если кнопка нажата, то сделать кое какое действие (например, нажимаю кнопку - рисуется шар).
Понимаю, вопрос не из разряда сложных. Просто ниразу конкретно этим не занимался.
_______________
С уважением, Евгений!

Евгений В Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Евгений В (статус: 1-ый класс)
Вопрос отправлен: 20 июня 2006, 20:36
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Виталий Лещенко

Слелай лучше так:
Объяви булевский массив keys от #0 до #255
В обработчике события OnKeyDown пометь нужную клавишу "нажатой". В OnKeyUp - "отпущенной".
Иогда ты в любой момент сможешь проверить нажата ли клавиша... сам так делаю в своем движке - работает на ура.

Ответ отправил: Виталий Лещенко (статус: 4-ый класс)
Время отправки: 20 июня 2006, 22:42
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Knjazev

Как пример проверки, нажаты ли кнопки Ctrl и Alt:
if (getasynckeystate(vk_Control)<>0) and (getasynckeystate(vk_Menu)<>0) then
{что-то делаем}

Ответ отправил: Knjazev (статус: 3-ий класс)
Время отправки: 20 июня 2006, 23:17
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 21 июня 2006, 18:52; участников в обсуждении: 1.
Виталий Лещенко

Виталий Лещенко (статус: 4-ый класс), 21 июня 2006, 18:52 [#1]:

У способа с использованием getasynckeystate
есть один недостаток... собственно вызов функции... это немного медленнее...

31 января 2011, 19:24: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:31
Выполнено за 0.03 сек.