Всем, добрый день! Проблема в следующем: необходимо развернуть дерево до определенного (заданного) узла (задан даже не узел а значение в узле) делаю так
| Код | procedure TfrmSCREdit.ExpandTree( selectedData: integer); var Node : TTreeNode; i, s: integer; begin // поиск значение в дереве Node := tvwSCR.Items.GetFirstNode; { tvwSCR - заданное дерево} Node := Node.GetNext; {selectedData - значение, которое необходимо найти в дереве} While Node <> nil do begin s := Integer(Node.Data); If Integer(Node.Data) = selectedData then Node.Selected := true else Node.Selected := false; Node := Node.GetNext; end; // раскрытие дерева Node.Expanded:=true; i := Node.Level; while i >0 do begin Node := Node.Parent; Node.Expanded := true; i:= i-1; end; end;
|
возникает проблема с обходом дерева и поиска значения в дереве...естественно в моем варианте он обходит только первый уровень иерархии...а как сделать так, чтоб он обходил дерево полность не соображу.. |