問題タブ [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.

0 投票する
2 に答える
443 参照

delphi - TVirtualStringTree でアニメーション化されたレベル バーを描画する方法は?

カスタムのアニメーション化された進行状況バーを描画することを目標にしていますVST

私の目標は、下の画像と同様の結果を描画することです。次のようなことを試みましたOnBeforeCellPaint

しかし、私は同じ結果を出すことはできず、次の画像と同じアプローチに到達することはできません:

ここに画像の説明を入力

それが私がコーディングで得た結果です:

ここに画像の説明を入力

プログレスバーはノードの横ではなくノードに沿って表示され、そのデザインは画像に示されているものと同じではありませんノードの黄色の長い背景が表示されます。ノードの左側に作成し、同じデザインにしたかったのです。私が上に投稿したアニメーション画像。

0 投票する
1 に答える
196 参照

delphi - TvirualTree でノードをインラインで描画する方法は?

Tvirtualdrawtree現在、ペイント前に on を使用して内部にいくつかの画像を描画しています。これが私の描画コードです

描かれた画像は縦に来ます。たとえば、次の画像のように水平に表示したい

ここに画像の説明を入力

ここにデータ構造があります

0 投票する
1 に答える
457 参照

delphi - TVirtualDrawTree - ノードを 1 行に配置する方法は?

これは私の他の質問Hereへのフォローアップです。

この件について新しい質問をするようにコメントで提案されたので

Row で異なる画像を描画するよう提案されています。ノードを並べて挿入するという最初からの私の目標は、この目的のために作成されていないVDTではこれを実行できないと言われています。しかし、オンラインプロジェクトが同じVDTを使用してそれを行っているのを見て、方法があると確信できるのはなぜですか

これがこのプロジェクトのスクリーンショットです

ここに画像の説明を入力

PEエクスプローラーのようなリソースビューアーを使用して、このフォームのデータを見つけました

だから私Tviruaildrawtreeは同じ目標を達成するために使用しなければならないと自分に言い聞かせ、データを作成し始めました

私はノードに画像オブジェクトを作成する必要があると考えていたので、URLからいくつかの画像リストをダウンロードし、次のようにノードに追加するため、次のコードは文字列リストからデスクに画像をダウンロードしてノードにロードしますTgifimage

ここで、VDT内にノードを描画する方法

しかし、上に示した画像と同じようにノードを配置することはできません

そして、その物はで作れないようですonbeforecellpanit

私の他の質問で、Tom Brunbergは、追加される画像が 80 で、例として行ごとに 8 が必要な場合、画像を 10 ノードに分割することを提案しました。しかし、コーディングでそれを行う方法や、どこから始めればよいかわかりません。

現行コードの発行

ここで次のコードで例外が発生しました文字列リストに6つの画像パスを追加してから、各列に描画しようとしました

0 投票する
2 に答える
919 参照

delphi - ユーザーがタブまたはクリックによってコンポーネントのフォーカスを取得したかどうかを検出する

tabユーザーがキーまたはマウスでコンポーネントに入った場合、どうすれば検出できますclickか?

更新 1

実際には、TVirtualStringTreeどの方法がフォーカスされているかによって、1 つまたは別の列にフォーカスされたカスタム エディターが開きます。

更新 2

以下のコードを確認してください。

私がやりたいことは次のとおりです。

  • Tabユーザーがキーまたはキーで入力した場合、フォーカスのあるノードの最初の列を編集します
  • マウスで入力した場合、対応するヒットした列を編集するclick

コンポーネントをクリックすると、OnEnter最初にトリガーされ、その後トリガーされるOnClickため、編集ノードが2回トリガーされるという問題があります。

0 投票する
1 に答える
713 参照

delphi - フィルタリングされた TVirtualStringTree で適切な代替行の色を作成する方法

以前は、これを使用VirtualStringTreeしてすべてのノードを表示し、 を使用してイベントNode.Index内の奇数行と偶数行を確認していました。OnBeforeCellPaint

しかし、ノードをフィルタリングすると、Node.Index次のスクリーンショットに示すように、代替行として使用するのは適切ではないことがわかりました。

フィルタリングされたノードの VirtualStringTree 代替色

これを解決するためのアイデア/解決策はありますか?

0 投票する
1 に答える
1036 参照

delphi - Delphi アプリケーションでのドラッグ ドロップ操作の終了またはキャンセル

Outlook から電子メールの添付ファイルをドラッグ アンド ドロップしています。ファイルは仮想ツリー ビューにドロップされます。

ドラッグ オーバー イベントの最後にあるインポート機能では、ファイルの処理に時間がかかり、機能が終了するまで Outlook アプリケーションがフリーズします。

関数の途中でドラッグ操作を終了できるようにしたい。

0 投票する
1 に答える
93 参照

delphi - TVirtualStringTree プロセス キーの押下を優先させるにはどうすればよいですか?

最近改良された特定の検索フォームが機能しています。その機能は、標準の検索フォームの機能です。上部のいくつかのボックスにいくつかの基準を入力し、[検索] ボタンをクリックすると、下のグリッドに結果が表示されます。しかし、それは醜く、機能が非常に制限されていたので、同僚の 1 人がそれを再構築しました... 新しい仕事に行く直前に。今、最後のいくつかの詳細を完成させようとしています。

TListBox変更の 1 つは、古いグリッドをより強力なに置き換えることでしたTVirtualStringTree。しかし、その過程で何かが壊れたようです: 以前は、グリッドの行をクリックして (グリッドにフォーカスを置いて) をヒットEnterすると、適切なイベント ハンドラーが起動して入力を処理し、詳細ビューが開きました。選択したアイテムの。ただし、このグリッドでは、 を押すと、プロパティを持つフォームの が代わりにEnter起動します。TButtonDefault = trueOnClick

TVirtualStringTree入力フォーカスがあるときに優先して、フォームにディスパッチする前に (できれば代わりに) ユーザーが Enter キーを押したことに応答するようにするにはどうすればよいですか?

0 投票する
2 に答える
3027 参照

delphi - 選択が変更された後に VirtualStringTree で選択されたノードを取得する方法は?

MultiSelect オプションを有効にした VST があります。キーボード イベントによって選択が変更されたときに、VirtualStringTree で選択されたノードのリストを取得するにはどうすればよいですか?

OnFocusChanged イベントで以下のコードを使用してみました

これは、マウスとシフト キーを使用する場合は問題なく動作しますが、キーボードを使用する場合、つまりノードを選択し、シフト キーを押してから下矢印キーを押して複数のノードを選択すると、選択によって完全なリスト - 1 が返されます。

これはバグのようですか?キーボードを使用するときに完全な選択を取得する方法についてのアイデアはありますか?