编码级次(1-9)-层次,末级标志(如果该结点下无子结点则为0反之为1,控制'+'和'-')
每次展开时编码级次就加1并且末级标志不为0
我在每次添加结点时都将编码级次写入结点中,当展开时先取的该结点的编码级次,然后加1,在求下一级的且末级标志不为0的,将其加入到该结点的下一层
我现在在onexpanded 中不知怎样取的当前结点,和编码级次?

解决方案 »

  1.   

    这里有个文件或目录转换成Treeview的函数,可以借鉴。procedure DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; IncludeFiles:Boolean);varSearchRec : TSearchRec;ItemTemp : TTreeNode;beginwith Tree.Items dotryBeginUpdate;if Directory[Length(Directory)] <> ' then Directory := Directory + ';if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 thenbeginrepeatif (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.')thenbeginif (SearchRec.Attr and faDirectory > 0) thenRoot := AddChild(Root, SearchRec.Name);ItemTemp := Root.Parent;DirToTreeView(Tree, Directory + SearchRec.Name, Root, IncludeFiles);Root := ItemTemp;endelse if IncludeFiles thenif SearchRec.Name[1] <> '.' thenAddChild(Root, SearchRec.Name);until FindNext(SearchRec) <> 0;FindClose(SearchRec);end;finallyEndUpdate;end;end;