События MouseDown, MouseUp (Мышь нажата, Мышь отпущена)
Возникают, когда пользователь нажимает (MouseDown) и отпускает (MouseUp) кнопку мыши.
Заголовки процедур обработки этих событий для набора страниц и полосы вкладок имеют вид:
Private Sub объект_MouseDown (index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
и
Private Sub объект_MouseUp (index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single),
а для других элементов:
Private Sub объект_MouseDown (ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
и
Private Sub объект_MouseUp (ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)
Здесь параметры имеют следующий смысл:
- объект - имя объекта, которому принадлежит процедура,
- index - индекс страницы или вкладки, для которой инициируется событие,
- Button - число, определяющее, какая кнопка нажата (1 - левая, 2 - правая, 4 - средняя),
- Shift - состояние клавиш Shift, Ctrl и Alt,
- X и Y - горизонтальная и вертикальная координаты указателя мыши (измеряются в точках от левого края и от верхнего края окна, рамки или страницы).
Возможные значения параметра Shift:
1 | нажата клавиша Shift. |
2 | нажата клавиша Ctrl. |
3 | нажаты клавиши Shift и Ctrl. |
4 | нажата клавиша Alt. |
5 | нажаты клавиши Alt и Shift. |
6 | нажаты клавиши Alt и Ctrl. |
7 | нажаты клавиши Alt, Shift и Ctrl. |
Для полосы вкладок параметр index определяет вкладку, которую щелкает пользователь. index - 1 означает, что пользователь щелкнул вне вкладки.
В диалоговом окне события MouseDown и MouseUp генерируются, если пользователь нажимает и отпускает кнопку мыши, когда указатель находится на свободном месте окна или на полосе прокрутки.
Типичная последовательность событий, связанных со щелчками выглядит так:
- MouseDown;
- MouseUp;
- Click;
- DblClick;
- MouseUp.
Если кнопка мыши нажимается в тот момент, когда указатель находится над некоторым объектом, то этот объект "захватывает" мышь и получает в дальнейшем все связанные с ней события, включая последнее MouseUp. Поэтому координаты X и Y не всегда задают точку внутри границ объекта, получающего событие, связанное с мышью.
С помощью процедур обработки событий MouseDown и MouseUp можно выяснить, какая кнопка мыши нажата, и определить реакцию системы на эти щелчки. Параметр Shift позволяет также выяснить, какие из управляющих клавиш Shift, Ctrl и Alt при этом нажаты.