Russian Belarusian English German Japanese Ukrainian

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

OnDragOver

CuBook05

Описание

Событие OnDragOver начинается в момент, когда перетаскиваемый объект пересек границу данного компонента и оказался внутри его контура. Заканчивается событие, когда объект, покидая компонент, пересек его границу. Обработчик события OnDragOver используется для того, чтобы дать сигнал о готовности компонента принять перетаскиваемый объект в случае, если пользователь отпустит его над данным компонентом. Если компонент готов принять объект, в обработчике надо задать значение параметра Accept, равное true. Впрочем, это значение по умолчанию равно true, так что его можно не задавать. Вообще в предельном случае обработчик может быть пустым, что будет означать готовность компонента принять любой объект. Но даже пустой обработчик нужен, так как иначе сообщения о приеме компонента приложение не получит.
Во время перетаскивания над компонентом объекта, который может быть принят, форма курсора мыши может изменяться, сигнализируя пользователю о готовности компонента принять объект. Чтобы это было так, надо до момента события OnDragOver (а обычно - во время проектирования) задать соответствующее значение свойства компонента DragCursor.
Параметр Source определяет перетаскиваемый объект, параметр Sender - сам компонент, параметры X и Y - координаты точки экрана в пикселах. Параметр State типа TDragState определяет состояние перетаскиваемого объекта по отношению к другим объектам.
 
Классы

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

typedef void (__closure *TDragOverEvent)(System::TObject* Sender, System::TObject* Source, int X, int Y, TDragState State, bool &Accept);
__property TDragOverEvent OnDragOver
 
Таблица состояния:
Значение Описание
dsDragEnter Курсор мыши входит в пределы компонента.
dsDragMove Курсор мыши перемещается в пределах компонента.
dsDragLeave Курсор мыши выходит за пределы компонента.
 
Пример

Обработчик события OnDragOver сигнализирует о том, что компонент готов принять перетаскиваемый объект, если это компонент ListBox1.
void __fastcall TForm1::ListBox1DragOver (TObject *Sender,TObject *Source, int X, int Y, TDragState State, bool SAccept)
{
Accept  = (((TControl*)Sender)->Name == "ListBox1");
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

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