5

私が間違っていなければ、TVirtualStringTree ツリービューに非表示のノードを作成することはできません。これを行うための有効なプロパティ、可視プロパティ、またはその他のプロパティがないためです。私はこれについて正しいですか?

はいの場合、ノードを非表示にする方法を教えてください。

私のツリーの構造:

  • 1 つのノード
  • 別のノード
    • サブノード 1
    • サブノード 2
    • ...
    • サブノード 15
    • サブノード 16 (見えない!)
  • さらに別のノード
    • さらに別のノードからのサブノード 1
    • さらに別のノードからのサブノード 2

ツリー全体で FirstNode/GetNextNode ループを実行すると、サブノード 16 を見つけることができ、最初の列のテキストを出力できます。また、ノードを調べて、たとえば、前の兄弟はいるが次の兄弟はなく、ノードの高さが 18 であることを確認できます。

それで、どうやってこれをしたのですか?

4

2 に答える 2

22

私が間違っていなければ、TVirtualStringTree ツリービューに非表示のノードを作成することはできません。これを行うための有効なプロパティ、可視プロパティ、またはその他のプロパティがないためです。私はこれについて正しいですか?

あなたは間違っています。非表示のノードと無効なノードの両方を持つことができます。ノードの可視状態を切り替えるには

vtree.IsVisible[Node] := boolean;

ノードの使用を有効/無効にする

vtree.IsDisabled[Node] := boolean;

パラメータに追加することで、ツリーのOnInitNodeイベントでノードを無効状態に初期化することもできます。ivsDisabledInitialStates

于 2011-08-23T18:39:57.550 に答える
1

ains answer に加えて、ツリーを再帰するには、次の関数を使用できます。

すべてのノードを再帰するには

Tree.GetFirst();
Tree.GetNext();
Tree.GetPrevious();

VISIBLE ノードのみを再帰するには:

Tree.GetFirstVisible();
Tree.GetNextVisible();
Tree.GetPreviousVisible();
于 2011-08-25T08:28:16.240 に答える