Страница 1 из 1
Позиционирование по правому щелчку мышки в ListBox’е
Добавлено: 19 Декабрь 2005, 18:39
NewUser
Есть стандартный ListBox (не Browse) по очереди.
Есть руками писанный PopUp.
Все работает, все вызывается (по правой кнопке мышки), но…..
В отличии от стандартного Browse’а, если щелкнуть правой кнопкой мышки по невыделенной записи, то появляется окно PopUp меню касательно ВЫДЕЛЕННОЙ записи.
Вопрос:
Как выделить запись, по которой совершен щелчок правой кнопкой мышки?
Вроде бы простой вопрос, но что-то не получается его реализовать.
С55Н, АВС.
Заранее благодарен.
Добавлено: 19 Декабрь 2005, 19:14
NewUser
На LisxBox'е висит Alert MouseRight
В AlertKey - идет обработка:
IF KEYCODE() = MouseRight
PopupString=PopupMgr.Ask()
Cycle
END
Она-то и перехватывает "позиционирование" на нужную запись. Здесь, я полагаю, надо ручками отловить координаты щелчка мышки, а как спозиционироваться - тут нет проблем.
Что-то не получается узнать, по какой записи (позиции в ЛистБоксе) был произведен щелчок правой кнопкой мыши...

Добавлено: 20 Декабрь 2005, 0:54
Admin
Нужно отлавливать MouseRightUp а не MouseRight и все будет хорошо.
Я себе для этих целей написал шаблон который и сую во все дырки
MouseRightUp можно прописать только ручками. В стандартном выборе кнопок его нет.
Добавлено: 20 Декабрь 2005, 5:23
NewUser
Спасибо, Admin, все гениальное – как всегда – просто!
Можно и домой идти!
Добавлено: 20 Декабрь 2005, 9:45
Дед Пахом
На LisxBox'е висит Alert MouseRight
В AlertKey - идет обработка:
IF KEYCODE() = MouseRight
PopupString=PopupMgr.Ask()
Cycle
END
Нужно отлавливать MouseRightUp а не MouseRight и все будет хорошо.
Можно ещё на Event:PreAlertKey поставить
IF KEYCODE()=MouseRight THEN CYCLE END
тогда броуз сначала спозиционируется на щелчке, а потом уже отработает Popup()
Добавлено: 20 Декабрь 2005, 13:29
NewUser
Спасибо, Дед Пахом! Ушел ценный совет в копилку "как сделать так...."
Добавлено: 21 Декабрь 2005, 8:33
gudkov
Вставил код: IF KEYCODE()=MouseRight THEN CYCLE., как и было написано, запись подсвечиваеться, но селект на нее происходит только после второго щелчка. C6.2ШВС
Добавлено: 21 Декабрь 2005, 9:10
Дед Пахом
Да? Не знаю, я ABC юзаю, там работает. Видимо, в ШВС и ABC разные по своей сути циклы, в которых этот CYCLE.