nagaoです。いつも教えて頂き、ありがとうございます。
このフォーラムは未だ新規の投稿を受けて頂いているようなので質問させ
ていただきます。
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
HT:tHITTests;
begin
HT:=TreeView1.GetHitTestInfoAt(X,Y);
if (htOnItem in HT) or (htOnLabel in HT) then
TreeView1.selected:=TreeView1.GetNodeAt(X,Y);
showmessage(TreeView1.selected.Text);
end;
Windows10+Delphi 10.1 Berlin の動作環境で上記のテストプログラムを作成し
てみました。
例えばtextが'ああ'というtreenodeの行にDragDropする操作をする場合、
正確に'ああ'と表示されている所にDragDropすれば、
TreeView1.selected:=TreeView1.GetNodeAt(X,Y);
のコードが動作してくれますが、同じ行でもそれ以外の所にDragDropした
場合には、そのような動作はしてくれません。
希望する行のどの位置にDragDropして、常に
TreeView1.selected:=TreeView1.GetNodeAt(X,Y);
が動作するようにする方法はないのでしょうか?
また、Windowsに標準装備されいるエクスプローラでは、右側の
ファイルを左側のフォルダが一覧表示されている所にDragDrop
しようとする場合、DragDropをする直前でも、MouseMoveに反応して
左側の画面では、フォルダ名だけでなく、マウスがいる行全体が
反転表示されますが、そのようなことが、TreeView1でもできない
でしょうか?
MLホームページ:
https://www.freeml.com/delphi-users
----------------------------------------------------------------------
【重要】必ずお読みください
■freeml byGMOサービス終了のお知らせ■
2019年12月2日(月)12:00をもちまして、
サービスの提供を終了させていただきます。
詳しくはこちら
http://ck.freeml.com/rd.php?cid=11272
------------------------------------------------------[freeml byGMO]--
「WiMAX(ワイマックス)」ならおトクなGMOとくとくBB。
今なら高額ポイントがもらえます♪
まずはかんたん登録♪ -ポイントタウン-
https://www.pointtown.com/ptu/rd.cgi?cid=9533
----------------------------------------------------------------------