Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

OnMouseDown и OnMouseUp

CuBook05

Описание

Обработка событий OnMouseDown и OnMouseUp используется для операций, требуемых при нажатии и отпускании пользователем какой-нибудь кнопки мыши.
Если требуется различная обработка событий в зависимости от того, какая кнопка мыши нажата или какая нажата вспомогательная клавиша, можно анализировать параметры Button и Shift. Значения параметра Button определяют, какая кнопка мыши нажата: mbLeft - левая, mbRight - правая, mbMiddle - средняя. Параметр Shift представляет собой множество, содержащее помимо обозначения нажатой кнопки еще и обозначения нажатых одновременно с этим вспомогательных клавиш Shift, Alt, Ctrl (соответствуют элементам множества ssShift, ssAlt, ssCtri), а также ssDouble - двойной щелчок.
Параметры X и Y определяют координаты указателя мыши в клиентской области компонента.
Параметр Sender - указатель на компонент, в котором произошло событие.
 
Классы

TControl
 
Определение

enum TMouseButton { mbLeft, mbRight, rabMiddle };
enum Classes__1 { ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble };
typedef Set<Classes__1, ssShift, ssDouble> TShiftState;
typedef void (__closure *TMouseEvent)(System::T0bject* Sender,TMouseButton Button,Classes::TShiftState Shift, int X, int Y);
__property TMouseEvent OnMouseDown
 
Имеется также парное к данному событие OnMouseUp, наступающее при отпускании нажатой кнопки мьши над объектом. Его определение использует тот же тип TMouseEvent:
__property TMouseEvent OnMouseUp
 
Пример

Обработчик события OnMouseDown может использоваться для начала процесса перетаскивания компонента, если вы решили задать какое-то дополнительное условие, например, проверка каких-то опций, по которому можно начинать перетаскивание. В этом случае в компоненте вы задаете свойство DragMode равным dmManual, что обеспечивает управление началом перетаскивания. Обработчик события OnMouseDown может иметь следующий вид:
void __fastcall TForm1::ListBox1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
if((Button == mbLeft) && <проверка какого-нибудь условия>)
((TControl*)Sender)->BeginDrag(false, 5);
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий