問題タブ [virtualtreeview]
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 - VirtualTreeview: いつ子をソートするのですか?
私は VirtualTreeView に依存して、時折変更される何千ものアイテムを表示します。これが発生すると、ツリーはクリーンアップされ、再び取り込まれます。
並べ替えは自動的に行われますが (toAutoSortフラグが設定されます)、これにはすべてのノードを再帰的に初期化するという望ましくない効果があり、ご想像のとおり、これは非常にコストのかかる操作です。
.Sortでは、いつメソッドを呼び出す必要toAutoSortがありますか? (DoInitChildren はもっともらしく見えましたが、ときどき結果が逆になるなどの奇妙な結果が得られたので、子を並べ替えるには良いイベントではないと思います。)
delphi - How to use TJvBalloonWindow as the hint window for Virtual treeview?
I have a 'hint window leftovers' problem with Virtual Treeview in an Office add-in, and now I want to customize the hint window to solve the problem. I want to use TJvBallonHint from the JVCL package, which is also used in other parts of my program.
I inherited TVirtualStringTree and have overridden the GetHintWindowClass method like the following code. The TJvBallonHint window class is applied, but the hint text is not drawn. Any tips for me? Thank you!
delphi - Delphi5 仮想 TreeView が必要
Delphi5 と互換性のある Virtual TreeView のコピーを持っている人はいますか? または、どこからダウンロードできるか知っている人はいますか?
ご回答ありがとうございます。
delphi - (RAD Studio) Virtual TreeView: すべてのノードを一度に初期化する方法は?
私はちょうどこのコンポーネントを発見し、それを使い始めました。
全体の概念は、必要に応じて外出先でノードを初期化することだと理解していますが、すべてを即座に初期化する必要があります。
それを行う賢い方法は何ですか?
私が思いついた唯一のことは、ノードを追加した後にGetLast()を使用することです。
もっと良い方法があると思いますか?
delphi - Delphi - 所有者描画ボタンを備えた ListView など
各行にボタンがあるリストビュー (または類似のもの) を作成するにはどうすればよいですか? ボタンは、必要に応じて各行に異なるテキスト/色を設定できる必要があります。
これには仮想ツリービューが最適だと確信していますが、少し迷っています。
ありがとう
-ブラッド
delphi - Delphi 7 と Delphi 2010 の間の TVirtualStringTree の互換性 - 「パラメータ リストが異なります」
Delphi 7 と Delphi 2010 で動作する TVirtualStringTree を含むフォームを作成しました。2 つのプラットフォーム間を移動すると、ツリー イベントで「...パラメータ リストが異なります..」というメッセージが表示され、文字列がTWideString (D7) と文字列 (D2010) の間で型が変化しています。このエラーを抑制するために私が見つけた唯一のトリックは、次のようにコンパイラ ディレクティブを使用することです。
イベントが実装されている場所でこれを繰り返します。簡単な解決策がありませんか?ありがとう。
delphi - TVirtualStringTree の列の自動サイズ変更
TVirtualTreeView の学習の山を登って、コントロールのサイズが変更されたときに、水平スクロール バーを必要とせずに最後の列の幅がコントロールの幅を正確に埋めるカスタム子孫を作成しようとしています。
「AutoFitColumns」に関連する項目 (メソッドとイベントの数) がいくつかありますが、この機能をカバーするドキュメントはありません。AutoFitColumns を使用して最後の列のサイズを自動的に変更できますか。
delphi - TVirtualStringTree - 非表示ノードとメモリ消費のリセット
バイナリ ログ ファイルからレコードを読み込み、それらを仮想 TListView に表示するアプリがあります。ファイルには数百万のレコードが含まれている可能性があり、ユーザーが表示をフィルター処理できるため、すべてのレコードを一度にメモリにロードすることはなく、ListView アイテムのインデックスは 1 対 1 の関係ではありません。ファイル レコード オフセット (たとえば、リスト項目 1 はファイル レコード 100 の場合があります)。ListView の OnDataHint イベントを使用して、ListView が実際に関心を持っている項目だけのレコードを読み込みます。ユーザーがスクロールすると、OnDataHint で指定された範囲が変化するため、新しい範囲にないレコードを解放し、新しいレコードを割り当てることができます。必要に応じて。
これは問題なく動作し、速度は許容範囲内であり、メモリ フットプリントは非常に小さいです。
私は現在、TListView の代わりとして TVirtualStringTree を評価しています。主な理由は、複数行にまたがるレコードを展開/折りたたむ機能を追加したいからです (項目数を動的に増減することで、TListView でそれをごまかすことができますが、これはそうではありません実際のツリーを使用するのと同じくらい簡単です)。
ほとんどの場合、TListView ロジックを移植して、必要に応じてすべてを機能させることができました。ただし、TVirtualStringTree の仮想パラダイムは大きく異なることに気付きました。これには、TListView と同じ種類の OnDataHint 機能はありません (OnScroll イベントを使用してそれを偽造することができます。これにより、メモリ バッファー ロジックは引き続き機能します)。また、OnInitializeNode イベントを使用して、割り当てられたレコードにノードを関連付けることができます。 .
ただし、ツリー ノードが初期化されると、ツリーの存続期間中は初期化されたままになります。それは私には良くありません。ユーザーがスクロールしてメモリからレコードを削除すると、これらの非表示ノードをツリーから完全に削除したり、展開/折りたたみ状態を失ったりせずにリセットする必要があります。ユーザーがそれらをスクロールして表示に戻すと、レコードを再割り当てしてノードを再初期化できます。基本的に、仮想化に関する限り、TVirtualStringTree をできるだけ TListView と同じように動作させたいと考えています。
TVirtualStringTree に ResetNode() メソッドがあることは確認しましたが、使用しようとするとさまざまなエラーが発生します。使い方が間違っているに違いない。また、各ノード内のデータ ポインターをレコード バッファーに格納することも考えました。メモリを割り当てて解放し、それに応じてそれらのポインターを更新します。エンドエフェクトもあまりうまくいきません。
さらに悪いことに、私の最大のテスト ログ ファイルには、約 500 万件のレコードが含まれています。一度に多くのノードで TVirtualStringTree を初期化すると (ログ表示がフィルタリングされていない場合)、そのノードのツリーの内部オーバーヘッドが 260MB ものメモリを消費します (レコードはまだ割り当てられていません)。一方、TListView を使用すると、同じログ ファイルとその背後にあるすべてのメモリ ロジックを読み込むため、数 MB を使用するだけで済みます。
何か案は?
delphi - Virtual TreeViewを確実に一番下までスクロールするにはどうすればよいですか?
カスタムノードの高さを持つTVirtualStringTreeオブジェクト、Virtual TreeViewを確実に一番下までスクロールする(つまり、スクロールバーが一番下になる)方法は?
その時電話してみtree1.FullExpandましtree1.ScrollIntoView.(tree1.GetLast)たが、うまくいきません。
前もって感謝します。