Учись программированию на C++ Builder бесплатно!

В компонентах 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 в компоненте, на который передается фокус. Это событие не связано с какими-то действиями пользователя.

Поделиться