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

「ウィンドウ」とはアプリケーション ウィンドウを意味すると仮定します。これは、コントロールによって実装されるドラッグ アンド ドロップが、アプリケーション内でのドラッグ アンド ドロップ専用であるためです。あるアプリケーションから別のアプリケーションにドラッグ アンド ドロップするには、OLE ドラッグ アンド ドロップを使用する必要があります。自分で実装するか(それほど難しくありません)、ライブラリを使用して実装します。

OLE ドラッグ アンド ドロップに関する MSDN ドキュメントは非常に優れています。読み取りの開始点:データ転送 (COM)

私が知っている2つのライブラリ:

于 2010-08-03T06:29:21.267 に答える
0

別のアプリケーションへのドラッグ/ドロップ (「ウィンドウの外側」という意味だと思います) は簡単ではありません。
私が見つけた最良の解決策は、Anders Melander の DragDrop コンポーネント スイートです:
http://melander.dk/delphi/dragdrop

于 2010-08-03T06:09:13.430 に答える