問題タブ [drag-and-drop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - HTML ドラッグ アンド ドロップで並べ替え可能なテーブル
行と列の両方を並べ替えることができる HTML のドラッグ アンド ドロップで並べ替え可能なテーブルが欲しいと思ったことはありませんか? 私はそれが私が死にたいものであることを知っています。ソート可能なリストはたくさん出回っていますが、ソート可能なテーブルを見つけることは不可能のようです。
script.aculo.us が提供するツールにかなり近づくことができることは知っていますが、クロスブラウザーの問題に遭遇しました。
javascript - JavaScript を使用して Flash アプレットの外からドラッグ アンド ドロップすることはできますか?
Flash アプレットを含む Web ページが必要で、いくつかのオブジェクトを Web ページの残りの部分からドラッグ アンド ドロップしたいとします。これは可能ですか?
それを行うウェブサイトをどこかに知っていればボーナスです!
c++ - ドラッグ中に QDrag が破壊された
QTreeView でドラッグ アンド ドロップを使用する Windows/Linux Qt 4.3 アプリケーションがあります。同じ Qt ライブラリ セットを使用する 2 つの非常によく似たアプリケーションがあります。ドラッグ アンド ドロップは、Linux では両方で機能しますが、Windows では 1 つのみで機能します。
動作しないアプリケーションでは、マウスを動かすとすぐに QDrag オブジェクトが削除されます。これは、ドラッグ中に Qt でまだ処理されているイベント キューから DeferredDelete イベントによって削除されます。QDrag オブジェクトが途中で削除される原因を確認する方法がわかりません。
この問題をデバッグする良い方法がわかりません。ソースを比較しましたが、明らかなものは見つかりません。あるアプリケーションのコードを別のアプリケーションで使用しようとしました。
助言がありますか?
アップデート:
QDrag 操作が失敗した理由は、COM が正常に初期化されなかったため、QDrag::exec の DoDragDrop への呼び出しがすぐに返されたためです。QApplication は、qt_init で OleInitialize を呼び出して COM を初期化しようとしましたが、「設定後にスレッド モードを変更できません」というエラーで失敗しました。
興味深いことに、OleInitialize が main で最初に実行される場合でもこれが発生するため、スレッド モードは外部依存関係によって最初に設定されます。Windows で動作するアプリケーションの違いの 1 つは、失敗するアプリケーションには .NET コードも含まれているため、それが問題である可能性があります。
解決済み:
この問題は、COM/CLR 相互運用の問題です。CLR は、初期化時にアパートメント状態を MTA に設定し、Qt が COM を初期化しようとすると失敗します。この問題と古い解決策については、Adam NathanがGotcha で STAThreadAttribute と Managed C++について説明しています。Visual Studio 2005 では、[構成プロパティ] > [リンカー] > [詳細設定] で /CLRTHREADATTRIBUTE:STA コンパイラ オプションを設定して、新しいエントリ ポイントを作成しなくても、スレッド属性を STA に設定できます。
drag-and-drop - Web ページまたは C# で生の (CF_HTML) クリップボード データを読み取るにはどうすればよいですか?
選択した Web ページを Firefox から HTML-Kit にドラッグ アンド ドロップすると、HTML-Kit はテキストとして貼り付けるか HTML として貼り付けるかを尋ねてきます。「テキスト」を選択すると、次のようになります。
MSDN によると、これは「CF_HTML」形式のクリップボード データです。OS X と Linux システムで同じですか?
Web ページから Web ページへのドラッグ アンド ドロップ操作で、この種の詳細情報にアクセスする方法はありますか? C# WinForms デスクトップ アプリケーションはどうでしょうか。
python - Windows エクスプローラーの Python スクリプトにドラッグ アンド ドロップします。
データ ファイルを Python スクリプトにドラッグ アンド ドロップし、ファイルを処理して出力を生成したいと考えています。Python スクリプトはデータ ファイルの名前をコマンド ライン パラメーターとして受け入れますが、Windows エクスプローラーはスクリプトをドロップ ターゲットにすることを許可しません。
この作業のためにどこかで行う必要がある何らかの構成はありますか?
dojo - 外部オブジェクトの Dojo DnD 受け入れ
ファイル・エクスプローラーからのファイルやフォルダーなどの外部オブジェクトを受け入れるように Dojo DnD ターゲットをコーディングすることは可能ですか? たとえば、Windows エクスプローラー。
javascript - jQueryUIdroppables-ドロップされる画像を変更する
私はjQueryUIのドロップ可能オブジェクトIMG SRC
を使用していますが、ドロップされたクローンにドロップされたアイテムとは異なるものを使用させるための最良の方法は何か疑問に思っています。
そこにあるフォトマネージャーのデモでは、サムネイルが同じサイズのスロットにドロップされます。大きな画像を小さなスロットにドロップしたいので、完全な画像の代わりにサムネイルを使用するには、そのクローンが必要です。
これを処理するための最良の方法に関する提案はありますか?
javascript - Scriptaculous でネスト可能なドラッグ可能オブジェクトを作成するには?
私は Scriptaculous ライブラリを使用して、エンドユーザーがリストを作成するのに役立つ魅力的な UI をアプリケーションに平手打ちしています。ピザの作成としましょう。
注文を完了するには、ピザのサイズをピザ パレットからドロップ可能な注文にドラッグします。そこに配置されると、ドラッグ可能(パレットに戻すことでジャンクできるため)とドロップ可能(材料を追加できるため)の両方の新しいdivに置き換えられます。
次に、注文のグループにあるピザのいずれかに、材料パレットから材料を追加できます。
これらのビットを正常に実装し、すべて正常に動作します。執着者: 配置されたピザから材料をドラッグ アンド ドロップしようとすると、ドラッグ可能として適切にマークされ、適切な測定のためにピザの上に z 配置され、代わりにピザのホールセールを取得します。これにより、この画面の重要な機能である材料の選択を元に戻すことができなくなります。
これをどうやってやりたいことができるかについての提案はありますか? 理想的には、単純なドラッグ オン、ドラッグ オフ UI を維持したいと考えています。これは、以前使用していたものよりも直感的な世界だからです。(多段階の HTML フォーム...身震いする...)
c - winapiにドラッグ&ドロップ
いくつかの新機能を必要とする純粋な Winapi アプリケーションがあります。そのうちの 1 つは、リスト間で (複数の) 要素をドラッグ アンド ドロップできる 2 つのリストとして実装するのが最適です。新しい機能は、単一のダイアログに限定できます。
これを実装する最も簡単な方法は何ですか? いくつかのアイデア:
- Pure Winapi (それは DetectDrag ですか)
- この 1 つのダイアログを提供する別の MFC または .NET DLL
- Microsoft WebBrowser コントロールを埋め込み、JQuery を使用する
これらのオプションのうち、避けるべきものはありますか?
より良いアイデアはありますか?
実装が最も速いのはどれですか?
始める方法についての指針はありますか?
delphi - MultiSelect が有効な場合の TListBox のドラッグ アンド ドロップの問題
multiselect と ExtendedSelect の両方が true に設定された TListBox があります。リスト ボックス内の複数の項目をドラッグして再配置できるようにする必要があります。私の問題は、ユーザーが CTRL または SHIFT キーを押さずに既に選択されている項目をクリックするとどうなるかです。
ケース 1: DragMode が dmManual に設定されている場合 マウスが押される前に選択がクリアされます。これにより、複数のアイテムをドラッグできなくなります。
ケース 2: DragMode が dmAutomatic に設定されている場合 MouseDown イベントは発生しません。選択はクリアされないのでドラッグは問題ありませんが、ユーザーは選択された項目の 1 つをクリックして選択をクリアすることはできません。これは、すべてのアイテムが選択されている場合、またはユーザーが選択したい次のアイテムが現在の選択の一部である場合に、実際に問題を引き起こします。
この問題は、OnStartDrag プロシージャで DragObject に何かを割り当てた場合にのみ発生することに注意してください。ユーザーがマウスを動かした後にのみ OnStartDrag が開始されれば、問題は解決すると思います。Mouse.DragImmediate := false が設定されていますが、リスト ボックス内の項目をクリックするとすぐに StartDrag が起動されます。
このプロジェクトでは Delphi 7 を使用していますが、Delphi 2007 でも同じ動作が見られます。