2

私はちょうどこのコンポーネントを発見し、それを使い始めました。

全体の概念は、必要に応じて外出先でノードを初期化することだと理解していますが、すべてを即座に初期化する必要があります。

それを行う賢い方法は何ですか?

私が思いついた唯一のことは、ノードを追加した後にGetLast()を使用することです。
もっと良い方法があると思いますか?

4

3 に答える 3

7

単一のノードを即座に初期化するより正しい方法は、既に提案されている FullExpand の代わりに、ValidateNode メソッドを使用することです。VTのドキュメントによると:

procedure ValidateNode(Node: PVirtualNode; Recursive: Boolean);

TBaseVirtualTree.ValidateNode メソッド

ValidateNode は、指定されたノード (および Recursive が true の場合はそのすべての子) が初期化されていることを確認します。Node が nil の場合、非表示のルート ノードが使用されます (これは、ツリー全体が検証される Recursive が true の場合にのみ意味があります)。

于 2011-04-03T19:07:14.917 に答える
3

treeview.FullExpand;

于 2010-04-12T06:14:05.430 に答える
3

ツリービューを手動で構築する独自の手順を作成できます。

例:

procedure TForm1.BuildTree;
var
  i: integer;
  Data: ^TYourRecord;
  pNode, cNode: PVirtualNode;
begin
  for i:=0 to 1000 - 1 do
  begin
    //build parent node
    pNode := VT.AddChild(nil);
    Data := VT.GetNodeData(pNode);
    //fill record values
    Data.SomeVar := 'Parent Node';
    //build child node
    cNode := VT.AddChild(pNode);
    Data := VT.GetNodeData(cNode);
    Data.SomeVar := 'Child Node';
  end;
end;
于 2010-04-12T06:06:13.093 に答える