Свойства, методы, события, типы, классы_______________________1027

Класс TControl

Определение

typedef void (_closure *TDragOverEvent)

(System::TObject* Sender, System::TObject* Source,
int X, int Y, TDragState State, bool sAccept);

property TDragOverEvent OnDragOver

Описание

Событие OnDragOver начинается в момент, когда перетаскиваемый объект пе-
ресек границу данного компонента и оказался внутри его контура. Заканчивается
событие, когда объект, покидая компонент, пересек его границу. Обработчик со-
бытия OnDragOver используется для того, чтобы дать сигнал о готовности компо-
нента принять перетаскиваемый объект в случае, если пользователь отпустит его
над данным компонентом. Если компонент готов принять объект, в обработчике
надо задать значение параметра Accept, равное true. Впрочем, это значение по
умолчанию равно true, так что его можно не задавать. Вообще в предельном случае
обработчик может быть пустым, что будет означать готовность компонента при-
нять любой объект. Но даже пустой обработчик нужен, так как иначе сообщения о
приеме компонента приложение не получит.

Во время перетаскивания над компонентом объекта, который может быть при-
нят, форма курсора мыши может изменяться, сигнализируя пользователю о готов-
ности компонента принять объект. Чтобы это было так, надо до момента события
OnDragOver (а обычно — во время проектирования) задать соответствующее зна-
чение свойства компонента DragCursor.

Параметр Source определяет перетаскиваемый объект, параметр Sender —
сам компонент, параметры Х и Y — координаты точки экрана в пикселях. Пара-
метр State типа TDragState определяет состояние перетаскиваемого объекта по
отношению к другим объектам. Возможны следующие состояния:

Значение Описание

dsDragEnter i Курсор мыши входит в пределы компонента.

dsDragMove j Курсор мыши перемещается в пределах компонента^

dsDragLeave Курсор мыши выходит за пределы компонента.

Пример

void_fastcall TFormI::ListBoxlDragOver(TObject *Sender,

TObject *Source, int X, int Y, TDragState State, bool &Accept)
{
Accept = (((TControl*)Sender)->Name == "ListBoxl");

}

Этот обработчик события OnDragOver сигнализирует о том, что компонент го-
тов принять перетаскиваемый объект, если это компонент ListBoxl.

Развернутый пример обработки событий при перетаскивании, в частности, со-
бытия OnDragOver, вы можете найти в разделе OnDragDrop.

OnEndDrag

Событие наступает в момент прерывания или окончания перетаскивания ком-
понента

Класс TControl
зз*