Exemplo n.º 1
0
        public static void ExDragDone(bool Drop)
        {
            if (DragObject != null && !DragObject.Cancelling)
            {
                BaseDragObject DragSave = DragObject;
                try {
                    try {
                        DragObject.Cancelling = true;
                        ExtPoint TargetPos = ExtPoint.Empty;

                        if (DragObject.DragTarget != null && DragObject.DragTarget != null)
                        {
                            TargetPos = DragObject.DragPos;
                        }

                        bool Accepted = (DragObject.DragTarget != null & Drop) && DragObject.ActiveDrag && ExDoDragOver(DRAGSTATE_LEAVE);

                        if (Accepted)
                        {
                            DragControl.DoDragEndEvent(DragObject.DragTarget, TargetPos.X, TargetPos.Y);
                            DragObject.DragTarget.DoDragDropEvent(DragControl, TargetPos.X, TargetPos.Y);
                        }
                    } finally {
                        if (DragSave != null)
                        {
                            DragSave.Cancelling = false;
                        }
                        DragObject = null;
                    }
                } finally {
                    DragControl = null;
                    if (DragSave != null)
                    {
                        DragSave = null;
                    }
                }
            }
        }