1028_____________________________________________Глава 15

Определение

typedef void (_closure *TEndDragEvent)(System::TObject* Sender,

System::TObject* Target, int X,
int Y) ;

_property TEndDragEvent OnEndDrag

Описание

Событие OnEndDrag наступает при любом окончании процесса перетаскива-
ния компонента — успешном (компонент перетащен в приемник) или безуспеш-
ном (компонент отпущен над формой или компонентом, не способным его при-
нять). Событие наступает в перетаскиваемом компоненте.

Обработка этого события не требуется для осуществления процесса перетаски-
вания. Соответствующий обработчик может быть написан, если требуется какое-то
действие или сообщение, подтверждающее результат перетаскивания, или ка-
кая-то реакция в перетаскивавшемся компоненте.

Параметр Sender — это сам объект перетаскивания. Параметр Target — это
компонент-приемник, если объект был им принят, или NULL, если перетаскива-
ние закончилось неудачей. Параметры Х и Y — координаты экрана в пикселях.

Пример

void   fastcall TFormI::ListBoxlEndDrag(TObject *Sender,

TObject *Target, int X, int Y)
(
if (Target == NULL)

ShowMessage("Перенесение объекта " + ((TControl*)Sender)->Name +
" прервано") ;

else

ShowMessage(((TControl*)Sender)->Name + " перенесен в " +
( (TControl*)Target)->Name) ;

)

В этом примере просто отображается сообщение о результатах перетаскивания
типа «Перенесение объекта ListBox"! прервано» или «ListBoxl перенесен в ListBox2».
Но, конечно, аналогичным образом можно предусмотреть любые действия.

OnEnter

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

Класс TWinControl
Определение

typedef void (_closure *TNotifyEvent)(System::TObject* Sender);

property Classes::TNotifyEvent OnEnter

Описание

Событие OnEnter наступает в момент получения элементом фокуса. Это собы-
тие не наступает при переключениях между формами или между приложениями.

При переключениях между элементами, расположенными в разных контейне-
рах, например, на разных панелях, событие OnEnter сначала наступает для кон-
тейнера, а потом для содержащегося в нем элемента. Это противоположно последо-
вательности событий OnExit. которые при переключении на компонент другого
контейнера наступают сначала для компонента, а потом для контейнера.

Пример

Пусть форма имеет кнопку ОК и групповую панель, включающую три радио-
кнопки. Пусть в начальный момент активна кнопка ОК. Когда пользователь щелк-