Содержание материала

При завышении перетаскивания, вне зависимости от готовности приемника всегда возникает еще одно событие:

 

Code:

property OnEndDrag: TEndDragEvent;

TEndDragEvent =procedure(Sender, Target: TObject; X, Y: Integer) of object;

 

Его параметры идентичны описанным выше.

Для управления перетаскиванием вручную (в режиме dmManual) есть следующие возможности. Начало перетаскивания происходит при вызове метода:

 

Code:

procedure BeginDrag(Immediate: Boolean);

 

Программист должен связать вызов этого метода с каким-либо событием в системе. (Если свойство DragMode установлено в dmAutomatic, BeginDrag вызывается функцией окна при нажатии левой кнопки мыши). Параметр Immediate определяет, когда именно возникает состояние Drag&Drop: в случае True немедленно, в случае False — после смещения мыши с нажатой левой кнопкой на 5 точек по любой из осей. Последний вариант дает возможность использовать нажатие левой кнопки и для перетаскивания, и для регистрации щелчков на элементе управления (скажем, на кнопке). В режиме dmAutomatic такой возможности нет. Метод:

 

Code:

procedure DragDrop(DragObject: TObject; X, Y: Integer); dynamic;

 

вызывает обработчик события OnDragDrop, а производит все завершающие действия метод

 

Code:

procedure EndDrag(Drop: Boolean);

 

Он инициирует события OnDragDrop (при возможности приема) и OnEndDrag.

 

Метод

Code:

function Dragging: Boolean;

возвращает True, если данный элемент в настоящий момент перетаскивается.

 

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

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить