Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.05.2008, 22:13   #1
yourself
Пользователь
 
Аватар для yourself
 
Регистрация: 10.11.2007
Сообщений: 38
Лампочка Как отследить направление движения мыши?

Вот думал я, думал над этой задачей... Ничего не могу придумать. У меня основная проблема - с точки зрения машины, движение мышки - дискретное явление... На событие OnMouseMove не получится приклеить вычисления координат... Давайте вместе подумаем, что можно использовать? Гугл подсказок не дал
yourself вне форума
Старый 28.05.2008, 22:15   #2
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

а что ты используешь для определения координат мыши?
Life if about choices
Make the right choice
TaTT DoGG вне форума
Старый 28.05.2008, 22:18   #3
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

http://programmersforum.ru/showthread.php?t=19680
B_N вне форума
Старый 28.05.2008, 22:18   #4
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

создаешь метод для формы OnMouseMove и пишешь туда:

Код:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
Label1.Caption:='X: '+inttostr(x);
Label2.Caption:='Y: '+inttostr(y);
end;
Life if about choices
Make the right choice

Последний раз редактировалось TaTT DoGG; 28.05.2008 в 22:22.
TaTT DoGG вне форума
Старый 28.05.2008, 22:38   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Явление то дискретное, но память то есть у машины. Вот тебе и ответ.
Сравнивай предыдущее положение с текущим и получишь "курс" )
Если нужен длинный след для анализа, можно и его запомнить а обнулять когда мышь стоит какое-то определенное время.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума
Старый 29.05.2008, 19:22   #6
yourself
Пользователь
 
Аватар для yourself
 
Регистрация: 10.11.2007
Сообщений: 38
По умолчанию

Ммм... Память у машины есть, но я все никак не могу догадаться, как ее использовать... Если на событие МаусМува привязать запоминание координат в какую-то переменную, то это значение будет меняться, даже если мышь движется непрерывно... разве что таймер использовать.. Только такой вариант приходит в голову. Можно ли это сделать без таймера?
yourself вне форума
Старый 29.05.2008, 19:47   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Все можно сделать, но я не совсем понимаю что именно надо.
Какое нужно направление, в самом простом понимании то есть вверх, вниз, влево, вправо, или же курс от 0 до 360°, или может мышиные жесты?

Простой случай, влево вправо
Код:
var
PrevX, PrevY: integer;

procedure MouseMove
begin
if x > prevX then ... //значит курсор сместился влево
if y > prevY then //вниз и т.д.
prevX:=x;
prevY:=y;
end;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 29.05.2008 в 19:55.
mutabor вне форума
Старый 30.05.2008, 07:22   #8
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

Запоминаешь предыдущие координаты Х У и угол движения или две предыдущие координаты. При движении мышки определяешь используя предыдущую координату, угол движения в плоскости(геометрия). Сравниваешь с предыдущим углом направления движения. Учти, что пользователь точно мышкой угол соблюсти не сможет, поэтому для сравнения используй интервал с заданной погрешностью.
Трофимов Александр вне форума
Старый 30.05.2008, 08:04   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Обсуждалось
Ответ да точный (см B_N & Mutabor)
На гугл не греши.

Закрыто.
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать направление мыши Манжосов Денис :) Общие вопросы Delphi 3 21.05.2008 11:48
Скорость движения обьекта shepelin Общие вопросы Delphi 9 23.01.2008 11:51
Движения кнопки xTANATOSx Общие вопросы Delphi 1 06.11.2007 09:19
Расписание движения поездов. KORT БД в Delphi 3 17.09.2007 14:01