1

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

前任。:

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

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

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

4

2 回答 2

0

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

于 2010-08-03T06:09:13.430 回答
0

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

关于 OLE 拖放的 MSDN 文档非常好。阅读起点:数据传输(COM)

我知道的两个库:

于 2010-08-03T06:29:21.267 回答