Файл: ...\Samples\Solution\Forms\Ddrop.scx

Этот пример показывает, как реализовать операции drag and drop. Одна страница на форме показывает ручное перетаскивание элементов управления вызовом метода Drag. Явный вызов метода Drag позволяет обрабатывать код события Click элемента управления. Другая страница показывает применение значения Automatic свойства DragMode, что позволяет начинать Drag and Drop операцию автоматически, когда пользователь нажмет кнопку мыши на элементе управления.

Перемещение элемента Command Button

В событии MouseMove элемента cmdDrop, если нажата левая кнопка мыши, находим растаяние от указателя мыши к верхнему и левому краю кнопки, и начинаем операцию перетаскивания.

  CopyCode imageКопировать код
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nButton = 1 && Left button
   THISFORM.XOffset = nXCoord – THIS.Left
   THISFORM.YOffset = nYCoord - THIS.Top
   THIS.Drag
ENDIF

В событии DragDrop страницы, на которой находится кнопка, меняем положение этой кнопки.

  CopyCode imageКопировать код
oSource.Left = nXCoord - THISFORM.XOffset
oSource.Top = nYCoord - THISFORM.Yoffset

Изменение цвета элемента Shape

Значение свойства DragMode цветного квадрата на странице Change Colors формы установлено в 1 – Automatic. Как только пользователь нажмет кнопку мыши на квадрате, начнется операция перемещения. Любой код в событии Click квадрата никогда не будет выполнен.

Код в событии DragDrop круга изменяет значение его свойства BackColor в такое же, как и в перемещаемого элемента.

  CopyCode imageКопировать код
LPARAMETERS oSource, nXCoord, nYCoord
THIS.BackColor = oSource.BackColor

Смотрите также