![]() |
|
||||||||||
|
|||||
|
Подскажите как можно отследить тройной клик по объекту. При этом тройной клик не должен вызывать события CLICK или DOUBLE_CLICK.
__________________
O God! The Aftermath. |
|
|||||
|
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
проверяйте тогда тройной MOUSE_DOWN
|
|
|||||
|
MOUSE_DOWN в связке с таймером? По идее лучше подойдёт MOUSE_UP, но всё равно спасибо.
__________________
O God! The Aftermath. |
|
|||||
|
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
по хорошему надо проверить MOUSE_DOWN, MOUSE_UP, MOUSE_DOWN, MOUSE_UP, MOUSE_DOWN, MOUSE_UP
это получиться совсем верно)) главное при всем при этом учесть проблемы перекрытия событий |
|
|||||
|
Я так понял что CLICK и DOUBLE_CLICK отпадают совсем, а вместо них нужно делать эмуляцию через MOUSE_DOWN/MOUSE_UP, считаем сколько раз нажали (к примеру за 1 секунду) и выдаём клик, даблклик либо же триплклик. Думаю должно сработать.
__________________
O God! The Aftermath. |
|
|||||
|
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
При DOUBLE_CLICK - ставим таймер на ~100мс. При одинарном -
проверяем если таймер запущен, то это уже тройное. останавливаем таймер и делаем что нужно при тройном. если таймер не работает, то это одинарное. по прошествии таймера - запускаем все что нужно при DOUBLE_CLICK. зы. Не вкурсе, если разрешен DOUBLE_CLICK - то при двойном нажатии срабатывает ли CLICK,а затем DOUBLE_CLICK или только DOUBLE_CLICK. Логично что должно быть повторому варианту. Но надо проверить. Последний раз редактировалось GFreemen; 07.10.2009 в 23:55. |
|
|||||
|
GFreemen, в вашем варианте будет помимо триплклика будет транслироваться ещё и даблклик, что лишне.
__________________
O God! The Aftermath. |
|
|||||
|
Регистрация: Oct 2006
Адрес: Волгодонск
Сообщений: 182
|
Цитата:
в слушателе DOUBLE_CLICK только запускается таймер и все. А в слушателе таймера делается все что нужно при двойном нажатии. ИМХО, это проще чем ловить три раза MOUSE_DOWN и три раза MOUSE_UP, каждый раз считать сколько времени прошло с предыдущего нажатия, и считать сколько раз вообще нажали. Умный в гору не пойдет. А как минимум поедет. |
|
|||||
|
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
на самом деле GFreemen прав, лично я не понимаю почему нельзя использовать click и double click, сам не давно подобными проблемами страдал, потом понял что иногда можно еще вспомнить про стадии событий а так же цель события, к кому оно попало от сюда уже и двигаться
|
|
|||||
|
Такой вариант: допусти я делаю вначале клик, а потом двойной клик, логично что должен сработать блок кода назначенный на триплклик, а в вашем варианте сработает вначале клик, а потом даблклик.
У вас вариант по-проще, но не учитывает нюансов, считать через MOUSE_DOWN/MOUSE_UP более труёво что ли…
__________________
O God! The Aftermath. |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:50. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|