我没有研究TShellTreeView,但我想它和资源管理器一样,使用了一种狡猾的做法:
不是搜索全部的目录,而只是搜索两层——当前层和下一层,搜索下一层是为了看是否要显示“+”,所以也不需要全部进行,只需要看有没有下一层目录。在展开下一层时再进行搜索。因而比你的做法快多了。
不是搜索全部的目录,而只是搜索两层——当前层和下一层,搜索下一层是为了看是否要显示“+”,所以也不需要全部进行,只需要看有没有下一层目录。在展开下一层时再进行搜索。因而比你的做法快多了。
windows explorer的确是这样实现的
你可以设置TreeNode的HasChild = true
但是没有child节点
当用户点击时引发OnExpanding
事件时加入检查和装入目录的代码
记住,如果没有子目录,可以将HasChild := false
谢谢