TreeView控件中Item该是一维数组的吧?需要寻求item为多维数组的控件

yuyehong 2003-10-17 09:35:04
我需要对列表进行实时刷新。由于在TreeView的Items由一维数组构成,在控件中添加子节点,其实是个插入过程,后面的节点会整个向后移动。这样的移动会影响速度。
我想寻求一个类似于TreeView的控件,但是节点内容又是以多维形式存放的控件。
有吗?如果没有,我又如何实现那?
...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sczyq 2003-10-21
  • 打赏
  • 举报
回复
认真理解 TTreeView 与 TTreeNode 。
logical 2003-10-18
  • 打赏
  • 举报
回复
一、在TreeView的Items并不是数组,也谈不上是一维或二维。而只是一个链表,你应该知道在链表中增加或删除一个节点的时间复杂度的。
二、“因为我的主节点个数不变,而子节点个数经常在变。”,这其实很好办,你可以定义一个指针数组,保存主节点的地址,这样查长主节点是很简单的了。
yuyehong 2003-10-17
  • 打赏
  • 举报
回复
虽然可以找到,但是关键是一维数组的添加删除会很费时间。
有没有办法可以解决?
yuyehong 2003-10-17
  • 打赏
  • 举报
回复
TreeView1->Items->Item[count]这个count是所有节点的数。
因为我的主节点个数不变,而子节点个数经常在变。这样的话item[count],不是要经常的删除和添加?那我找主节点就会很麻烦
Wingsun 2003-10-17
  • 打赏
  • 举报
回复
看不懂。
你可以在插入前禁止Items的刷新,插入后再刷新Items,这样会好些的。
freshman2003 2003-10-17
  • 打赏
  • 举报
回复
你看这样行不,你可以利用节点的object属性,给节点设一个标记,就象数据库一样,删除时并不真正删除,而是设置这个节点的标记为false,添加节点时,先找标记为false的节点,并把这个节点标记改为true,如果找不到,再真正添加一个节点。声明:纯粹是想法,没有真正实现过。其实如果treeview不和数据库关联的话,添加删除节点的时间基本可以不考虑。

602

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧