hierarchia drzewa w VirtualTreeView

0

Witam,
chciałbym stworzyć hierarchię drzewa w VirtualTreeView, np

  • .
    .
    .
    .

Przeczytałem: Virtual Treeview i potrafię stworzyć dwupoziomowe drzewo. Gdy piszę tak:

       Wskaznik:=VirtualStringTree1.GetLast(nil);

Data := VirtualStringTree1.GetNodeData(Wskaznik);
VirtualStringTree1.ChildCount[Wskaznik]:=VirtualStringTree1.ChildCount[Wskaznik]+1;

Wskaznik := VirtualStringTree1.GetLastChild(Wskaznik);
Data := VirtualStringTree1.GetNodeData(Wskaznik);
Data.Caption:=s;

mam taki układ
*
*
*
*
*

Jak mogę zmienić ten kod??

Brakuje mi tutaj pola Items, jak w TreeView

TN: TTreeNode;

    tn:=TreeView1.Items[0].GetLastChild.GetLastChild;
    TreeView1.Items.AddChild(tn.GetLastChild ,s);

Z góry dzięki za pomoc

0
var
  PNode: PVirtualNode;
  PData: PVirtualRec;
begin
  VirtualStringTree1.NodeDataSize := SizeOf(TVirtualRec);

  VirtualStringTree1.RootNodeCount:= 2;

  PNode:= VirtualStringTree1.GetFirst;
  PData:= VirtualStringTree1.GetNodeData(PNode);
  PData.Caption:= 'A';

  PNode:= VirtualStringTree1.GetNext(PNode);
  PData:= VirtualStringTree1.GetNodeData(PNode);
  PData.Caption:= 'B';

  VirtualStringTree1.ChildCount[PNode]:= 2;

  PNode:= VirtualStringTree1.GetFirstChild(PNode);
  PData:= VirtualStringTree1.GetNodeData(PNode);
  PData.Caption:= 'I';

  PNode:= VirtualStringTree1.GetNext(PNode);
  PData:= VirtualStringTree1.GetNodeData(PNode);
  PData.Caption:= 'II';

  VirtualStringTree1.ChildCount[PNode]:= 4;

  PNode:= VirtualStringTree1.GetFirstChild(PNode);
  PData:= VirtualStringTree1.GetNodeData(PNode);
  PData.Caption:= '1';

  PNode:= VirtualStringTree1.GetNext(PNode);
  PData:= VirtualStringTree1.GetNodeData(PNode);
  PData.Caption:= '2';

  PNode:= VirtualStringTree1.GetNext(PNode);
  PData:= VirtualStringTree1.GetNodeData(PNode);
  PData.Caption:= '3';

  PNode:= VirtualStringTree1.GetNext(PNode);
  PData:= VirtualStringTree1.GetNodeData(PNode);
  PData.Caption:= '4';
end;
0

Dzieki, działa. Przerobiłem kod i tworzę strukturę drzewa kategorii ze sklepu internetowego. Nie wiem dlaczego, ale w niektórych miejscach, zamiast nazwy kategorii widzę "Wiersz" i jakas liczba

 
function TForm1.DodajDoDrzewa(parent,id,nazwa:string):boolean;
var
  Data     : PWirtualnyRekord;
  Wskaznik : PVirtualNode;
begin
memo1.Lines.Add(parent+' - '+id+' - '+nazwa);
result:=false;
  Wskaznik:=VirtualStringTree1.GetFirst;
  while Assigned(Wskaznik) do
  begin
    Data := VirtualStringTree1.GetNodeData(Wskaznik);

    if data.id = parent then
    begin
  VirtualStringTree1.ChildCount[Wskaznik]:= VirtualStringTree1.ChildCount[Wskaznik]+1;

  Wskaznik := VirtualStringTree1.GetLast();

  Data:= VirtualStringTree1.GetNodeData(Wskaznik);
  Data.Caption:= nazwa;
  memo1.Lines.Add(nazwa+' - '+id);
  data.id:=id;
  result:=true;

  exit;
  end
  else
      Wskaznik := VirtualStringTree1.GetNext(wskaznik);

  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1