3

Delphi プロジェクトで TVirtualStringTree ( Virtual TreeView Componentの一部)を使用しており、2 つの列が [+] 記号で展開/折りたたみ可能な子を持つことができるビューを作成したいと考えています。サンプルとしての下の図では、サーバー列だけでなく画像列にも[+]記号を付けたいと思います。ツリーには複数のサーバー ノードがあり、それぞれに多くのプロセスの子 (メインの列はイメージ) があり、一部のプロセスにはプロセスのノードの子であるサブプロセスがあるという考え方です。

代替テキスト
(出典: remkoweijnen.nl )

このようなレイアウトは可能ですか?デフォルトのコンポーネントを使用していない場合は、これを子孫に実装する方法についてアドバイスをいただければ幸いです。

/編集: 次のスクリーンショットは、TOndrej が提案する方法を使用した場合の もの です http://www.remkoweijnen.nl/temp/TreeView4.png

OK、TOndrej のアイデアに従って実装することにしました: alt テキスト http://www.remkoweijnen.nl/temp/TreeView5.png

4

2 に答える 2

4

ほとんどの場合、それは必要ありません。必要なグループ化を明確に指定してください。最初の列は多目的に使用できます。たとえば、レベル 0: サーバー、レベル 1: プロセス、レベル 2 以上: 子プロセスなど、グループ化レベルごとに異なる情報を表示します。各レベルでは、そのレベルに関連する列のみに情報を表示する必要があります。上記の例では、レベル 0 はサーバー名のみを最初の列に表示します。残りの列は空のままです。

カスタム描画でプラス記号を好きなだけ実装することもできますが、それは大変な作業であり、結果は不必要で、珍しく、ユーザーを混乱させやすいと思います。

于 2010-01-19T12:47:17.960 に答える
3

ツリーを持つことができるのは 1 つの列だけで、他の列はリストビューとして機能します。ツリーのある列がメインの列です。

2 つの列にツリーがあり、それらが「競合」する可能性がある場合、グループ化がどのように機能するかわかりません。親ノードなどとは何ですか。GUI 技術的には、これはこれらの詳細を提供する最良の方法ではない可能性があります。ユーザーは、そのように動作することを期待しません。

于 2010-01-19T13:06:45.030 に答える