問題タブ [tvirtualstringtree]
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.
delphi - TVirtualStringTree でアニメーション化されたレベル バーを描画する方法は?
カスタムのアニメーション化された進行状況バーを描画することを目標にしていますVST
私の目標は、下の画像と同様の結果を描画することです。次のようなことを試みましたOnBeforeCellPaint
。
しかし、私は同じ結果を出すことはできず、次の画像と同じアプローチに到達することはできません:
それが私がコーディングで得た結果です:
プログレスバーはノードの横ではなくノードに沿って表示され、そのデザインは画像に示されているものと同じではありませんノードの黄色の長い背景が表示されます。ノードの左側に作成し、同じデザインにしたかったのです。私が上に投稿したアニメーション画像。
delphi - TVirtualDrawTree - ノードを 1 行に配置する方法は?
これは私の他の質問Hereへのフォローアップです。
この件について新しい質問をするようにコメントで提案されたので
Row で異なる画像を描画するよう提案されています。ノードを並べて挿入するという最初からの私の目標は、この目的のために作成されていないVDTではこれを実行できないと言われています。しかし、オンラインプロジェクトが同じVDTを使用してそれを行っているのを見て、方法があると確信できるのはなぜですか
これがこのプロジェクトのスクリーンショットです
PEエクスプローラーのようなリソースビューアーを使用して、このフォームのデータを見つけました
だから私Tviruaildrawtree
は同じ目標を達成するために使用しなければならないと自分に言い聞かせ、データを作成し始めました
私はノードに画像オブジェクトを作成する必要があると考えていたので、URLからいくつかの画像リストをダウンロードし、次のようにノードに追加するため、次のコードは文字列リストからデスクに画像をダウンロードしてノードにロードしますTgifimage
ここで、VDT内にノードを描画する方法
しかし、上に示した画像と同じようにノードを配置することはできません
そして、その物はで作れないようですonbeforecellpanit
。
私の他の質問で、Tom Brunbergは、追加される画像が 80 で、例として行ごとに 8 が必要な場合、画像を 10 ノードに分割することを提案しました。しかし、コーディングでそれを行う方法や、どこから始めればよいかわかりません。
現行コードの発行
ここで次のコードで例外が発生しました文字列リストに6つの画像パスを追加してから、各列に描画しようとしました
delphi - ユーザーがタブまたはクリックによってコンポーネントのフォーカスを取得したかどうかを検出する
tab
ユーザーがキーまたはマウスでコンポーネントに入った場合、どうすれば検出できますclick
か?
更新 1
実際には、TVirtualStringTree
どの方法がフォーカスされているかによって、1 つまたは別の列にフォーカスされたカスタム エディターが開きます。
更新 2
以下のコードを確認してください。
私がやりたいことは次のとおりです。
Tab
ユーザーがキーまたはキーで入力した場合、フォーカスのあるノードの最初の列を編集します- マウスで入力した場合、対応するヒットした列を編集する
click
コンポーネントをクリックすると、OnEnter
最初にトリガーされ、その後トリガーされるOnClick
ため、編集ノードが2回トリガーされるという問題があります。
delphi - Delphi アプリケーションでのドラッグ ドロップ操作の終了またはキャンセル
Outlook から電子メールの添付ファイルをドラッグ アンド ドロップしています。ファイルは仮想ツリー ビューにドロップされます。
ドラッグ オーバー イベントの最後にあるインポート機能では、ファイルの処理に時間がかかり、機能が終了するまで Outlook アプリケーションがフリーズします。
関数の途中でドラッグ操作を終了できるようにしたい。
delphi - TVirtualStringTree プロセス キーの押下を優先させるにはどうすればよいですか?
最近改良された特定の検索フォームが機能しています。その機能は、標準の検索フォームの機能です。上部のいくつかのボックスにいくつかの基準を入力し、[検索] ボタンをクリックすると、下のグリッドに結果が表示されます。しかし、それは醜く、機能が非常に制限されていたので、同僚の 1 人がそれを再構築しました... 新しい仕事に行く直前に。今、最後のいくつかの詳細を完成させようとしています。
TListBox
変更の 1 つは、古いグリッドをより強力なに置き換えることでしたTVirtualStringTree
。しかし、その過程で何かが壊れたようです: 以前は、グリッドの行をクリックして (グリッドにフォーカスを置いて) をヒットEnterすると、適切なイベント ハンドラーが起動して入力を処理し、詳細ビューが開きました。選択したアイテムの。ただし、このグリッドでは、 を押すと、プロパティを持つフォームの が代わりにEnter起動します。TButton
Default = true
OnClick
TVirtualStringTree
入力フォーカスがあるときに優先して、フォームにディスパッチする前に (できれば代わりに) ユーザーが Enter キーを押したことに応答するようにするにはどうすればよいですか?
delphi - 選択が変更された後に VirtualStringTree で選択されたノードを取得する方法は?
MultiSelect オプションを有効にした VST があります。キーボード イベントによって選択が変更されたときに、VirtualStringTree で選択されたノードのリストを取得するにはどうすればよいですか?
OnFocusChanged イベントで以下のコードを使用してみました
これは、マウスとシフト キーを使用する場合は問題なく動作しますが、キーボードを使用する場合、つまりノードを選択し、シフト キーを押してから下矢印キーを押して複数のノードを選択すると、選択によって完全なリスト - 1 が返されます。
これはバグのようですか?キーボードを使用するときに完全な選択を取得する方法についてのアイデアはありますか?