一次最多只能散100?Treeview+Grid(or Table/list)

haitao 2009-11-12 11:45:10
http://blog.csdn.net/sz_haitao/archive/2009/10/30/4748629.aspx
TreeView的一些问题
treeview本来是表达xml的最佳形式,但是xml有属性和子节点,treeview只有子节点
一般的做法是把属性也作为子节点挂在节点下,但是感觉就很不好:一个没有子节点而只有属性的节点,它居然也可以展开!

virtualTreeView支持节点属性(列),以多列的形式展示,非常好
但是,它要求所有节点的列都是一样的,值可以不一样,名、数量必须一样,因为它的列是从上到下一统到底的
而一般,不同的节点,它们的属性(列)名、数量很可能是不一样

这个情况,不知道怎么表现比较好。。。。。。
——每个节点如果必要,嵌一个2行(列名+列值)x n列的grid?

另外,如果一个节点的信息是个长文本,如何直接在treeview里面显示比较好?
好像treeview不支持节点的高度可各自动态变化。。。。。。
——每个节点如果必要,嵌一个memo?

virtualTreeView还有2个问题:

1、新加的节点,经常出现单击每个node的text部分无响应,需要单击image部分才恢复正常

估计是点击位置判断矩形还是添加前的,不知道怎么在添加后刷新一下当前可见的各个节点的位置判断矩形

2、想实现分段加载,不知道怎么实现:
从文件1里加载根节点的最后20个一级子节点(以及它们的子节点),
从文件2里加载根节点的最后21-40个一级子节点(以及它们的子节点),
从文件3里加载根节点的最后41-60个一级子节点(以及它们的子节点),
...

loadfromXXX都是一次性从文件加载,savetoXXX就是一次性写到文件。

现在因为树比较大,而其中绝大多数都是历史信息,不会修改的,只是每次添加一些最上面的信息,保存时,没必要把历史节点的信息也一起写一次。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sz_haitao/archive/2009/10/30/4748629.aspx



js里,有jqtreetable可以实现,但是要求没行的高度是一样,而且有一个小bug,顶层节点最后一个节点含有子节点时,收缩后,那个+/-的图标会用错了。
...全文
345 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjp1234airen4385 2009-11-12
  • 打赏
  • 举报
回复
我就是来接点分。
chhrsas 2009-11-12
  • 打赏
  • 举报
回复
学习。
fenshm 2009-11-12
  • 打赏
  • 举报
回复
学习~顶!
cp0313 2009-11-12
  • 打赏
  • 举报
回复
jf
哈哈的哈 2009-11-12
  • 打赏
  • 举报
回复

樓主給分吧! 不然我要當小偷了·
de410 2009-11-12
  • 打赏
  • 举报
回复
学习学习~~
bdmh 2009-11-12
  • 打赏
  • 举报
回复
学习了
hjkto 2009-11-12
  • 打赏
  • 举报
回复
jf
贝隆 2009-11-12
  • 打赏
  • 举报
回复
接分
FogRain 2009-11-12
  • 打赏
  • 举报
回复
学习
husion01 2009-11-12
  • 打赏
  • 举报
回复
好长UP
haitao 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 imho888 的回复:]
VirtualStringTree

下一个去看看吧
[/Quote]

讲到它了。。。。。。简单使用了好几年了
haitao 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 sz_haitao 的回复:]
引用 18 楼 iseekcode 的回复:
next grid是免费的,可以以树形方式展示


下载到的好像多是dcu,源码可能要收费的
它的memo里没有看到树形?
[/Quote]

哦,单独的demo.exe里没有,附的demo里有。。。。。。。。效果不错
调整行高后,那些线条处理的不错。就是新加节点后,有些节点的线没有更新
imho888 2009-11-12
  • 打赏
  • 举报
回复
VirtualStringTree

下一个去看看吧
haitao 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 iseekcode 的回复:]
next grid是免费的,可以以树形方式展示
[/Quote]

下载到的好像多是dcu,源码可能要收费的
它的memo里没有看到树形?
iseekcode 2009-11-12
  • 打赏
  • 举报
回复
next grid是免费的,可以以树形方式展示
haitao 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 mwy654321 的回复:]
引用楼主 sz_haitao 的回复:
但是xml有属性和子节点,treeview只有子节点


答:treeview的每个子节点都有Treeview1.Items[某节点索引].Data,它是个无类型的结构指针,你可以将节点的属性定义成一个结构,然后挂到Data上,于是,就解决了Treeview无属性的问题,但要注意退出程序时释放。
[/Quote]

呵呵,这次讨论的是怎么显示、展现的问题了

——不是吧,2个小时内是第n次登录了!?!是csdn的问题,还是我们局域网的问题??!!
无条件为你 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 sz_haitao 的回复:]
但是xml有属性和子节点,treeview只有子节点
[/Quote]

答:treeview的每个子节点都有Treeview1.Items[某节点索引].Data,它是个无类型的结构指针,你可以将节点的属性定义成一个结构,然后挂到Data上,于是,就解决了Treeview无属性的问题,但要注意退出程序时释放。
lhy 2009-11-12
  • 打赏
  • 举报
回复
左TreeView显示节点,右ValueListEditor显示属性。
xzhifei 2009-11-12
  • 打赏
  • 举报
回复
1.连线可以去掉,现在的系统资源管理器都没有这些连线了,因为这些线影响美观。
2.你可以用多个Grid并排放在一起来弄,不过要注意滚动条的处理
加载更多回复(5)

5,387

社区成员

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

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