Delphi вики
Advertisement

Для того чтобы механизм заработал, требуется настроить соответствующим образом два элемента управления. Один должен быть источником (Source), второй — приемником (Target). При этом источник никуда не перемещается, а только регистрируется в качестве такового в механизме.

Примечание: Один элемент управления может быть одновременно источником и приемником.


Свойства

Свойство Варианты Описание
DragMode dmManual Перетаскивание компонента инициируется программистом в ручном режиме, после выполнения в нужный момент программной команды:

TObject.BeginDrag(false);

dmAutomatic Перетаскивание компонента начинается автоматически, сразу после нажатия пользователем левой кнопки мыши над компонентом. При этом событие OnMouseDown не наступает!
DragCursor Выбирается из списка курсоров Определяет форму указателя мыши на то время, как он перетаскивает объект над этим элементом управления.

Методы

Параметры Варианты Описание

procedure BeginDrag(Immediate: Boolean; Threshold: Integer);

Запускает механизм Drag&Drop. Когда DragMode=dmAutomatic механизм запускается автоматически.
Immediate True Процесс перетаскивания начинается сразу после нажатия кнопки мыши (ее указатель изменит вид на тот, который задан свойством DragCursor).
False Процесс перетаскивания начинается через расстояние Threshold пикселей.
Threshold По умолчанию Threshold=5 При Immediate=False определяет расстояние, на которое нужно отвести указатель мыши после нажатия клавиши, чтобы включился механизм Drag&Drop.

procedure EndDrag(Drop: Boolean);

Прекращает дальнейшее перетаскивание элементов управления.
Drop True Элемент управления будет опущен.
False Элемент управления не будет опущен и операция перетаскивания отменяется.

procedure DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);

Метод-обработчик компонента, возникающий при перемещении курсора над компонентом.
Sender - Идентифицирует элемент управления - компонент, над которым возникло событие DragOver.
Source - Определяет перетаскиваемый объект.
X, Y - Определяют координаты текущего расположения объекта с использованием системы координат элемента управления Sender
State dsDragEnter Указатель появился над элементом управления.
dsDragLeave Указатель покидает элемент управления.
dsDragMove Указатель перемещается над компонентом.
Accept True Параметр сообщает, что данный компонент становится приемником.
False Устанавливает, что элемент управления Sender НЕ примет объект.

procedure DragOver(Sender, Source: TObject; X, Y: Integer;

Метод-обработчик компонента-приемника, возникающий при отпускании левой кнопки мыши на компоненте-приемнике.
Sender - Идентифицирует элемент управления - компонент, который принял компонент-источник.
Source - Определяет перетаскиваемый компонент-источник.
X, Y - Определяют координаты мыши

procedure EndDrag(Sender, Target: TObject; X, Y: Integer);

Метод-обработчик компонента-источника, возникающий при завершении процесса переноса.
Sender - Определяет перетаскиваемый объект.
Target - Определяет перетаскиваемый компонент-приёмник.
X, Y - Определяют координаты мыши
Advertisement