我在窗口中有一个TcxGridDBTableView,并且dragmode设置为dmAutomatic。当我将一行拖放到另一行上方时,它可以正常工作。但是,当我将一行拖放到窗口外部时,我没有进入TcxGridDBTableView的'OnEndDrag'事件。
例:
procedure TfrmMyForm.cxGridDBTableViewEndDrag(Sender, Target: TObject; X, Y: Integer);
begin
ShowMessage('ClassName: ' + Sender.ClassName );
end;
我正在调试它,并且我在showmessage行有一个断点,但是当我在窗口外面放一行时,程序不会停在该行。
我正在使用快速量子网格来实现它。
答案 0 :(得分:0)
拖放到另一个应用程序(我认为你的意思是“窗外”)不是一件容易的事。
我找到的最佳解决方案是Anders Melander的DragDrop组件套件:
http://melander.dk/delphi/dragdrop
答案 1 :(得分:0)
假设“窗口”是指应用程序窗口,这是因为控件实现的拖放操作仅适用于应用程序中的拖放操作。对于从一个应用程序拖放到另一个应用程序,您需要使用OLE拖放操作。要么自己实现(不是太难),要么使用库。
关于OLE drag-n-drop的MSDN文档非常好。阅读的起点:Data Transfer (COM)
我知道的两个库: