リストボックス:ドラッグ時のカーソル表示

リストボックスのドラッグ時にカーソルが変化するはずなのですが、
v16,V17とで行うと表示しない様になっている。
v15では両方表示されていました。

v17では表示しない。
[]28459363;“Your comment here…”[/]

v16/v17では表示しない。
[]28459365;“Your comment here…”[/]

本件については,しばらく前に別の方から指摘があり,
開発部に問い合わせたところ,
Carbon/Cocoaの違いに由来するもので,
standard behaviour(特に意図したわけではないが,設計上,予期される振る舞い)
である,とのことでした。

ACI0097886

(Xcodeで教科書どおりのアプリケーションを作成して確認)

Cocoaのドラッグ&ドロップで制御できるのは,
アイテムを受け入れる・受け入れない,といった指定だけであり,
明示的にアイコンを切り替えるAPIが用意されていないことが理由のようです。

FinderがCocoaでありながら「進入禁止」アイコンを表示できるのは,
非公開のAPIの使用しているためかもしれません。

現状は仕様ということですね。

しかしこれではドラッグしているのかどうかがわかりません。インターフェイス的にどうなんでしょうか?
対象が薄くなってついてくる様にはならないでしょうか。 :frowning:

: Keiji HOSAKA

対象が薄くなってついてくる様に

場面によっては使えないかもしれませんが,SET DRAG ICONはいかがでしょうか。

https://doc.4d.com/4Dv16/4D/16.4/SET-DRAG-ICON.301-3979489.ja.html

: Keisuke MIYAKO

場面によっては使えないかもしれませんが,SET DRAG ICONはいかがでしょうか。

https://doc.4d.com/4Dv16/4D/16.4/SET-DRAG-ICON.301-3979489.ja.html
それは最終手段で… :mrgreen:
というかつくり込むのはすごく面倒ですよ。これ。

回避方法です。

<code 4D>
Case of
: (Form event=On Drag Over)
SET CURSOR(9019)
End case

</code 4D>

これで回避できる様です。
ドラッグ側とドロップ側に追加するだけです。
9019はドラッグ側の禁止マーク。 ドロップ側の9016は緑のプラスマークになります。

これくらいだったら4D側で修正してほしい。 :pray:

情報をご提供いただきありがとうございます。
レポートを開発部に送りました。

https://doc.4d.com/4Dv17/4D/17/SET-CURSOR.301-3729694.ja.htmlSET CURSOR>がこの場面で使えるとは思いませんでした・・・

ドラッグ中のアイコンについて,開発部から回答がありました。

現在の動作が仕様であり,バグではない,とのことです。

よろしくお願い申し上げます。

: Keisuke MIYAKO

ドラッグ中のアイコンについて,開発部から回答がありました。

現在の動作が仕様であり,バグではない,とのことです。

よろしくお願い申し上げます。

バグじゃないのは良いのですがマウスカーソルの変更ぐらいしてくれてもって話だったのでは… :mrgreen:

v18でテストしてみたらSET CURSORの裏技が出来なくなっていました。
v17で再度確認してみるとこちらも出来なくなっていました。

ドラックしようとした時には表示されるので有効にはなっている様ですが
その後、普通のカーソルに書き換わりますね。

いまのところ回避策はないみたいです。 :doubt:

リストボックスのプロパティで "行の移動可"を有効にすると以前と同じ様に裏技でカーソルが切り替わる様です。
おそらく"行の移動可"じゃないときにはカーソルを標準に戻す処理を追加してるのではないでしょうか?
外すか、ちゃんとカーソルが変わる様に修正して欲しいですね。 :mrgreen:

無いとは思いますが"行の移動可"の時にもカーソルが変更できない方向での修正はやめて欲しいです。 :pray:

それで思い出しました:

こちら

ACI0099312 リストボックスの行を別のリストボックスの上にドラッグした場合,ドラッグ先のリストボックスのOn Drag Overでドロップ操作が禁止したときはマウスポインターが「進入禁止」アイコンに変化しましたが,禁止しなかったときはマウスポインターが「追加」アイコンに変化しませんでした。ドラッグ元のリストボックスの「行の移動可」プロパティを無効にすれば,ドラッグの開始と同時にポインターが変化します。

注記: 修正により,ドラッグ元の「行の移動可」プロパティが有効に設定されていても,ドラッグ&ドロップ操作で「コピー」と「移動」の両アクションがセットされるようになりました。

https://4d-jp.github.io/2019/10/23/release-note-version-17r6/

この修正が可能なのであれば修正可能では? :pray: