Начало операции перетаскивания


procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var DropSource : TFileDropSource; DropData : THDropDataObject; rslt : HRESULT; dwEffect : DWORD; DropPoint : TPoint; begin if (Button = mbLeft) then begin { Создаем объект-источник... } DropSource := TFileDropSource.Create; { ...и объект данных } DropPoint.x := 0; DropPoint.y := 0; DropData := THDropDataObject.Create (DropPoint, True);
DropData.Add (Label1.Caption);
{

DoDragDrop управляет операцией и по мере надобности

1 Разумеется, чтобы Windows было что копировать, следует предварительно создать файл с указанным именем в корневом каталоге диска D:. — Примеч. ред.

вызывает методы IDropSource и IDropTarget.

} rslt := DoDragDrop (DropData, DropSource, DROPEFFECT_COPY, dwEffect);
if ((rslt <>
DRAGDROP_S_DROP) and (rslt <>
DRAGDROP_S_CANCEL)) then begin case rslt of E_OUTOFMEMORY : ShowMessage ('Out of memory');
else ShowMessage ('Something bad happened');
end; end; { Освобождаем использованные ресурсы после завершения работы } DropSource.Free; DropData.Free; end; end;



Содержание раздела