Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка нажатий клавиш мыши [Delphi, Windows]


Страницы:   1 2

Orc ©   (2003-09-03 07:58:00) 

Здавствуйте, Мастера!

Такой вопрос: как можно обработать нажатия на клавиши мыши в Direct3D-приложении? Т.е., если кнопка у меня в координатах 0,0,100,100, то я пишу

if (pos.x>=0) and (pos.y>=0) and (pos.x<=100) and (pos.y<=100) and (нажатие_на_левую_мышинную_кнопку=true) then делаем_что_то

Как сделать, чтобы это всё работало? Заранее благодарен за ответы.


pasha_676   (2003-09-04 10:05:00) [21]

насчет скорости ты пожалуй зря. Насчет простоты - этточно. Но бонус инпута еще и в поддержке разнообразных девайсов. Джойстик например. Тут вопрос что делается и к чему стремиться. В простой тренировочно-отлаживательной (или в игрушке для домашнего пользования) проге вряд ли стоит городить огород на инпуте. Вообщем все зависит от целей и задач.


Sapersky   (2003-09-04 09:42:00) [22]

DirectInput притом, что там гораздо проще получить всё, что касается устройств ввода

Ну, это кому как... Меня лично DInput жутко раздражал при отладке, когда на каждом брейкпоинте у него устройства терялись.

к тому же работает гораздо быстрее, особенно клавиатура.

См. WinAPI GetKeyboardState. Точно такая же скорость, что и с DInput.


Orc   (2003-09-04 09:12:00) [23]

2MeF88: А можно примерчик? Очень уж интересно посмотреть :)


cyborg   (2003-09-03 21:45:00) [24]

DirectInput притом, что там гораздо проще получить всё, что касается устройств ввода, к тому же работает гораздо быстрее, особенно клавиатура.


Sapersky   (2003-09-03 17:58:00) [25]

Причём тут форма вообще, мышь что, от формы зависит?
Смотри DirectInput, пример приводить неохото


А причём тут DirectInput вообще, GetCursorPos не сработает, что ли? Хотя на полном экране не пробовал... Но сообщения (WM_MOUSEMOVE) точно сработают - окно-то есть.
Я к тому, что эти методы попроще будут. Сообщения немного медленнее, но для кнопок это неважно.


MeF88   (2003-09-03 15:02:00) [26]

А я вообще извратился, я не только просматривал прямоугольник, но если мышь находится в прямоугольнике, то смотрел еще и прозрачность писеля в текстуре... Естественно переведя координаты мыши в координаты на текстуре с учетом вращений, масшаба и пр. Зато выглядит клево.


Orc   (2003-09-03 14:26:00) [27]

2cyborg: про форму я просто так сказал :) Но, тем не менее, спасибо. Буду читать the f***ing manual по DirectInput :))


cyborg   (2003-09-03 13:05:00) [28]

Причём тут форма вообще, мышь что, от формы зависит?
Смотри DirectInput, пример приводить неохото, раз уж Direct3D приложение делаешь, то с DirectInput сам разберёшься.


Orc   (2003-09-03 12:39:00) [29]

2cyborg: А подробнее, с примером можно? Всё осложняется тем, что у моего приложения нет формы как таковой - сразу создаётся окно и переводится в полноэкранный режим.


cyborg   (2003-09-03 10:22:00) [30]

Так и делай.

При нажатии на кнопку смотри в цикле все свои объекты (например кнопки):
if (pos.x>=0) and (pos.y>=0) and (pos.x<=100) and (pos.y<=100) then begin end;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо