【问题标题】:How to deal with TcxCustomGrid-TcxCustomGrid Drag and Drop when I drag an object to the outside of the window?TcxCustomGrid-TcxCustomGrid 拖拽对象到窗口外怎么处理?
【发布时间】:2010-08-02 22:06:41
【问题描述】:

我在一个窗口中有一个 TcxGridDBTableView,并且 dragmode 设置为 dmAutomatic。当我将一行拖放到另一行之上时,它工作正常。但是,当我将一行拖放到窗口外部时,我没有进入 TcxGridDBTableView 的“OnEndDrag”事件。

例如:

procedure TfrmMyForm.cxGridDBTableViewEndDrag(Sender, Target: TObject; X, Y: Integer);
begin
  ShowMessage('ClassName: ' + Sender.ClassName );
end;

我正在调试它,我在 showmessage 行有一个断点,但是当我将一行放到窗口外时,程序不会在该行停止。

我正在使用快速量子网格来实现它。

【问题讨论】:

    标签: delphi drag-and-drop devexpress delphi-2007 quantumgrid


    【解决方案1】:

    拖放到另一个应用程序(我假设您的意思是“在窗口之外”)并非易事。
    我找到的最佳解决方案是 Anders Melander 的 DragDrop 组件套件:
    http://melander.dk/delphi/dragdrop

    【讨论】:

    • 感谢您的回答。但也许我的问题比看起来更简单。如果拖放成功完成,我只需要一个通知我的标志。因为我需要撤消我在“drop”未被接受时开始拖动时所做的更改,例如,在我将一行拖动到 Windows 应用程序外部的情况下。对不起我的英语不好。
    【解决方案2】:

    假设您所说的“窗口”是指应用程序窗口,那是因为控件实现的拖放操作仅适用于应用程序内的拖放操作。对于从一个应用程序拖放到另一个应用程序,您需要使用 OLE 拖放。要么自己实现(不太难),要么使用库。

    关于 OLE 拖放的 MSDN 文档非常好。阅读起点:Data Transfer (COM)

    我知道的两个库:

    【讨论】:

    • 感谢您的回答。但也许我的问题比看起来更简单。如果拖放成功完成,我只需要一个通知我的标志。因为我需要撤消我在“drop”未被接受时开始拖动时所做的更改,例如,在我将一行拖动到 Windows 应用程序外部的情况下。对不起我的英语不好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多