Страница 1 из 1
MapBasic. Обработать событие двойного клика на карте
Добавлено: 30 янв 2014, 17:42
Juls
Нужно привязать процедуру на определенное действие пользователя в окне карты. При 2м клике мышью +зажатой клавише допустим R вызов процедуры.
1) Подскажите какой обработчик для этого лучше сгодится?
Есть мысль использовать ToolHandler, но там нужно выбирать пункт меня прежде чем он запустится. С другой стороны больше подходит SelChangedHandler поскольку выполнение процедуры связано с выбранным на карте объектом.
2) Как словить 2ой клик понятно, а как поймать нажатие клавиши?
Спасибо
Re: MapBasic. Обработать событие двойного клика на карте
Добавлено: 30 янв 2014, 19:15
ginpetr
насколько помню, можно только шифт использовать. смотрите toolbutton и commandinfo
[ Сообщение с мобильного устройства ]
Re: MapBasic. Обработать событие двойного клика на карте
Добавлено: 31 янв 2014, 13:53
juffin_h
При срабатывании
ToolHandler, можно определить, нажаты ли клавиши
shift и/или
Control.
SelChangedHandler срабатывает при любых изменениях выборки (не только выборе мышкой) и даже при отмене выборки.
Juls писал(а):Есть мысль использовать ToolHandler, но там нужно выбирать пункт меня
Не меню выбрать, а кнопку нажать на панели.
Re: MapBasic. Обработать событие двойного клика на карте
Добавлено: 31 янв 2014, 14:59
Juls
juffin_h писал(а):При срабатывании
ToolHandler, можно определить, нажаты ли клавиши
shift и/или
Control.
SelChangedHandler срабатывает при любых изменениях выборки (не только выборе мышкой) и даже при отмене выборки.
спасибо
Juls писал(а):Есть мысль использовать ToolHandler, но там нужно выбирать пункт меня
Не меню выбрать, а кнопку нажать на панели.
я это имела в виду, просто неясно выразилась

Re: MapBasic. Обработать событие двойного клика на карте
Добавлено: 01 фев 2014, 11:43
juffin_h
(Не совсем ясна задача, но на всякий случай)
Еще можно задать процедуру просто на нажатие комбинации клавиш(горячие клавиши). Например Ctrl-R? Не зависимо от активного окна. И уже в обработчике проверить какое окно активно. Только проверьте какие горячие клавиши уже заняты MapInfo.