版权声明:可以任意转载,转载时请务必以超链接形式标明如下文章原始出处和作者信息及本声明
作者:xixi
出处:http://blog.youkuaiyun.com/slowgrace/archive/2008/11/23/3354249.aspx
Technorati 标签: VBA,树类,CAnnaTree
想在VBA里做个树类,因为好像好些地方用得着。现在想的起来用得着的有:
- 菜谱的管理:分门别类的把我看到的想试试的菜谱存起来(内容存在博客上),方便制定食谱的时候选择。
- 资料的管理:分门别类的把我搜集的各种备查信息存起来(内容存在博客上),方便检索信息。
- 帐目的管理:分门别类的把流水帐信息管理起来,方便看到各类开销的统计。
- 时间的管理:分门别类的把时间的用途管理起来,方便时间的规划和回顾。
这几个应用有相同的地方,也有不同的地方。
相同的地方:
- 都需要能添加节点、删改节点、拖拽节点
- 都需要逐步展开(指树生成的时候只展开最上面两层,随用户的点击逐步展开,而不是一开始就生成整棵树)以节省程序运行时间。
- 都需要额外的表来维护节点的细节
- 都包含多挂节点(可以挂在多个位置的节点)。有两种多挂节点,同树多挂节点和异树多挂节点:
- 同树多挂节点:各层次的节点都需要可以多挂,也就是具有相同细节的节点可以挂在同一棵树的多个地方。
- 异树多挂节点:同时也是叶子节点类别,这类节点下面不能再挂子节点。叶子节点可以挂在多棵不同的树下,称为拥有多个东家,也就是异树多挂节点。
不同的地方:
- 层次百分比的需求不同。菜谱和资料只需要计数;帐目和时间需要对实际的cost进行小计。
- 多树联动的需求不同。菜谱、资料、帐目不需要多树联动。时间需要(因为项目和活动树可能需要同时打开)。相应的,它们的多挂节点的种类也不同:前者只有同树多挂节点;后者则同时有同树和异树两种多挂节点。
- 显示细节的需求不同。在菜谱、资料、帐目树上点击某节点之后,相应的细节窗口中希望显示它下一节点的信息,类似资源管理器的形式;在时间树上点击某节点之后,有时需要显示该节点本身的信息,以便修改和查看。
更多树类文章