В компонентах C++Builder определен ряд событий, связанных с мышью. Это события:
Событие | Описание |
OnClick | Щелчок мыши на компоненте и некоторые другие действия пользователя. |
OnDblClick | Двойной щелчок мыши на компоненте. |
OnMouseDown | Нажатие клавиши мыши над компонентом. Возможно распознавание нажатой кнопки и координат курсора мыши. |
OnMouseMove | Перемещении курсора мыши над компонентом. Возможно распознавание нажатой кнопки и координат курсора мыши. |
OnMouseUp | Отпускание ранее нажатой кнопки мыши над компонентом. Возможно распознавание нажатой кнопки и координат курсора мыши. |
OnStartDrag | Начало, процесса «перетаскивания» объекта. Возможно распознавание перетаскиваемого объекта. |
OnDragOver | Перемещение «перетаскиваемого» объекта над компонентом. Возможно распознавание перетаскиваемого объекта и координат курсора мыши. |
OnDragDrop | Отпускание ранее нажатой кнопки мыши после «перетаскивания» объекта. Возможно распознавание перетаскиваемого объекта и координат курсора мыши. |
OnEndDrag | Еще одно событие при отпускании ранее нажатой кнопки мыши после «перетаскивания» объекта. Возможно распознавание перетаскиваемого объекта и координат курсора мыши. |
OnEnter | Событие в момент получения элементом фокуса в результате манипуляции мышью, нажатия клавиши табуляции или программной передачи фокуса. |
OnExit | Событие в момент потери элементом фокуса в результате манипуляции мышью, нажатия клавиши табуляции или программной передачи фокуса. |
OnMouseWheel | Событие при вращении колесика мыши в любую сторону. Начиная с C++Builder 5. |
OnMouseWheelUp | Вращение колесика мыши вверх. Наступает, если вращение не обработано по событию OnMouse Wheel. Начиная с C++Builder 5. |
OnMouseWheelDown | Вращение колесика мыши вниз. Наступает, если вращение не обработано по событию OnMouse Wheel. Начиная с C++Builder 5. |
Как видно из приведенной таблицы, эти события охватывают все мыслимые манипуляции с мышью и даже дублируют многие из них. Наиболее широко используется событие OnClick. Обычно оно наступает, если пользователь щелкнул на компоненте, т.е. нажал и отпустил кнопку мыши, когда указатель мыши находился на компоненте. Но это событие происходит также и при некоторых других действиях пользователя. Оно наступает, если:
- Пользователь выбрал элемент в сетке, дереве, списке, выпадающем списке, нажав клавишу со стрелкой.
- Пользователь нажал клавишу пробела, когда кнопка или индикатор были в фокусе.
- Пользователь нажал клавишу Enter, а активная форма имеет кнопку по умолчанию, указанную свойством Default.
- Пользователь нажал клавишу Esc, а активная форма имеет кнопку прерывания, указанную свойством Cancel.
- Пользователь нажал клавиши быстрого доступа к кнопке или индикатору. Например, если свойство Caption индикатора записано как «&Полужирный» и символ 'П' подчеркнут, то нажатие пользователем комбинации клавиш Alt+П вызовет событие OnClick в этом индикаторе.
- Приложение установило в true свойство Checked радиокнопки RadioButton.
- Приложение изменило свойство Checked индикатора CheckBox.
- Вызван метод Click элемента меню.
Для формы событие OnClick наступает, если пользователь щелкнул на пустом месте формы или на недоступном компоненте.
Обилие событий, связанных с мышью, а также фактическое дублирование некоторых из них требуют четкого представления о последовательности отдельных событий, наступающих при том или ином действии пользователя. В момент запуска приложения из рассматриваемых выше событий наступает только событие OnEnter в компоненте, на который передается фокус. Это событие не связано с какими-то действиями пользователя.