hierarchia drzewa w VirtualTreeView

Odpowiedz Nowy wątek
2011-08-02 17:05
marek
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

Pozostało 580 znaków

2011-08-02 21:01
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;

Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.

Pozostało 580 znaków

2011-08-04 12:14
marek
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;

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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