Как бороться с TcxCustomGrid-TcxCustomGrid Drag and Drop, когда я перетаскиваю объект за пределы окна? - PullRequest
1 голос
/ 03 августа 2010

У меня есть TcxGridDBTableView в окне, а режим перетаскивания установлен в dmAutomatic. Когда я перетаскиваю ряд над другим, он работает нормально. Но когда я перетаскиваю строку за пределы окна, я не получаю событие TcxGridDBTableView 'OnEndDrag'.

Ex:.

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

Я отлаживаю его, и у меня есть точка останова на строке showmessage, но когда я опускаю строку за пределы окна, программа не останавливается на этой строке.

Я использую экспресс-квантовую сетку для реализации этого.

Ответы [ 2 ]

0 голосов
/ 03 августа 2010

Предполагая, что под "окном" вы подразумеваете окно приложения, то есть потому, что перетаскивание, реализованное элементами управления, предназначено только для перетаскивания в приложении. Для перетаскивания из одного приложения в другое необходимо использовать OLE drag-n-drop. Либо реализовано самостоятельно (это не так уж сложно), либо с помощью библиотеки.

Документация MSDN по OLE drag-n-drop довольно хороша. Начальная точка для чтения: Передача данных (COM)

Две библиотеки, о которых я знаю:

0 голосов
/ 03 августа 2010

Перетаскивание в другое приложение (я полагаю, вы имеете в виду, что «вне окон») не является тривиальным.
Лучшее решение, которое я нашел, это набор компонентов DragDrop от Anders Melander:
http://melander.dk/delphi/dragdrop

...