Страница 1 из 1
Поймать MouseLeft на списке.
Добавлено: 14 Июнь 2019, 10:36
kreator
Надо написать маленькую главку в "Энциклопедию Костылей".
С11.0.13401. Есть броуз. Нужно по нажатию левой клавиши мыши сделать некие действия, далее программа должна работать как обычно. Проблема вот в чём. Событие NewSelection на броузе срабатывает при отпускании клавиши мыши. Ставлю на списке "Алерт". В "Преалерт" делаю свои действия и отправляю cycle'ом далее. Но селект на запись броуза срабатывает не всегда. То срабатывает, то не срабатывает. Что подправить? Куда костыль подставить?
Поймать MouseLeft на списке.
Добавлено: 14 Июнь 2019, 19:44
gopstop2007
если костыль, то BRWx.UpdateViewRecord и после своих действий - BRWx.ResetFromBuffer )
Поймать MouseLeft на списке.
Добавлено: 15 Июнь 2019, 10:35
morkovin
Попробуй так:
Код: Выделить всё
!Browse Embed: TakeNewSelection (2600)
IF SELF.ILC.GetControl(){PROPLIST:MouseDownRow} <> 0 AND SELF.ILC.GetControl(){PROPLIST:MouseDownZone}=LISTZONE:Field
SELF.UpdateBuffer
xQueueFieldNo# = SELF.ILC.GetControl(){PROPLIST:FieldNo,SELF.ILC.GetControl(){PROPLIST:MouseDownField}}
xField" = UPPER(CLIP(WHO(Queue:Browse,xQueueFieldNo#)))
MESSAGE(xField",'test')
END
Поймать MouseLeft на списке.
Добавлено: 15 Июнь 2019, 11:13
morkovin
kreator писал(а): ↑14 Июнь 2019, 10:36по нажатию левой клавиши мыши
Код: Выделить всё
!Browse Embed: TakeNewSelection (2600)
IF SELF.ILC.GetControl(){PROPLIST:MouseDownField} <> 0 AND SELF.ILC.GetControl(){PROPLIST:MouseDownZone}=LISTZONE:Field
SELF.UpdateBuffer
xQueueFieldNo# = SELF.ILC.GetControl(){PROPLIST:FieldNo,SELF.ILC.GetControl(){PROPLIST:MouseDownField}}
xField" = UPPER(CLIP(WHO(Queue:Browse,xQueueFieldNo#)))
IF KeyCode() = MouseLeft !alert MouseLeft
MESSAGE(xField",'test')
END
END
Поймать MouseLeft на списке.
Добавлено: 16 Июнь 2019, 14:30
kreator
Я, конечно, попробую завтра на работе. Но что-то сомневаюсь. Событие NewSelection не срабатывает, до класса, думаю, тем более не дойдёт. Повторю - нужно отловить не клик, а именно нажатие. Пользователь нажал левую клавишу мыши и её не отпускает.
Поймать MouseLeft на списке.
Добавлено: 16 Июнь 2019, 14:35
Дед Пахом
надо просто обработать сообщение WM_LBUTTONDOWN.
Поймать MouseLeft на списке.
Добавлено: 16 Июнь 2019, 15:13
kreator
В "Энциклопедии костылей" нет места для WinAPI.