TreeView ドラッグ中のイメージ


初心者です  2013-04-17 01:51:19  No: 44345

Windows7 DelphiXEで開発中です。

TreeViewを利用してDrag中にImageListに登録してある
イメージを表示する事は可能でしょうか?(DragCursor)

DragModeはdmAutomaticとなっております。

どうかご教授お願いします。


助監督  2013-04-17 09:35:52  No: 44346

質問を整理すると、こういうことですよね。
   TreeViewでドラッグ中のマウスカーソル(DragCursor)を、ImageListに登録してある画像に
   することは可能でしょうか?

とりあえずImageListは置いといて、、、
普通はあらかじめイメージエディタなどでマウスカーソルを作成してcurファイルを作っておき、
それをプログラムの冒頭(TForm1.FormCreate)とかで以下のように登録します。
Screen.Cursors[1]:=LoadCursorFromFile('MyCursor.cur'); 
TreeView1.DragCursor:=1;

また、イメージエディタでカーソルのリソースを作成して、それをexeに組み込むことも出来ます。
詳しくは検索したりして調べてください。適当に検索したら古い情報はすぐ見つかりました。

オリジナルのカーソルを使う - Delphi Tips - Delphi Acid Floor
http://www.wwlnk.com/boheme/delphi/tips/tec0320.htm

※まずはヘルプのTScreen.Cursorsをよく読んだほうがいいです。

ImageListの画像を使う方法ですが、Win32APIのCreateCursorを使えば可能だと思います。
ですが、マウスカーソルを作成するには ANDマスク と XORマスク、2つの画像が必要ですよ?
任意の画像からカーソルを作成するには、制約として縁を使わない画像にしておき、それから
計算して2つのマスクを作り、CreateCursorで登録…という手順になると思います。
こんなことは面倒なので、普通はやらないと思います。

#次回からはユニークなハンドル名で投稿することをおすすめします。…「初心者」さんが多過ぎなので。
#このスレッドではそのまま「初心者です」にしておいてください。ヘタに変えると混乱します。


助監督  2013-04-17 09:53:42  No: 44347

あ、もしかしてTreeViewのDragCursorは関係なくて、ImageListのSetDragImageのことだったのかな、、、。
だとしたらヘルプを見てください。簡単ですから。


助監督  2013-04-18 10:06:57  No: 44348

(DragCursor)を見て、マウスカーソルのことだと見抜いたつもりになってましたが、、、
なんか完全に外したような気がする。。。。

私の回答でニーズを満たせないようでしたら、もっと詳しく、具体的な内容で質問してみてください。
そうすれば、トンチンカンでない回答をしてくれる人が現れると思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加