TlistView刷新问题:) 谢谢:)(0分)

  • 主题发起人 主题发起人 wison
  • 开始时间 开始时间
W

wison

Unregistered / Unconfirmed
GUEST, unregistred user!
做一个类似资源管理器界面的数据查询工具,但是在TlistView.ViewStyle =
vsReport时存在一个刷新问题,因为如果每次在显示查询结果的时候,先清掉所有的Columns然后
再根据要显示的内容再add新的Columns,这种方式显示得好慢(已经用了BeginUpdate和EndUpdate
处理方式,估计时间花在动态add column上,并且用mouse快速拖动column来改变其宽时,发现
刷新好跟不上:). 后来我在程序启动的时候,把可能会用到的Colums都一次过ADD上去,当显示
结果的时候,根据需要把不用的COLUMN都把它"隐藏"起来:
ListView.Columns.Caption := '';
ListView.Columns.MinWidth:= 0;
ListView.Columns.width := 0;
但是有时,却仍看到Column.Width 不等于0的效果:),请指教:),愿闻其详:)//谢谢:)
 
我的做法是先把需要显示的数据读取并存放到某种数据结构的链表中,指针存放在
TreeView的Data中,ListView 刷新时从对应的TreeView分支的Data中读取数据,
保存时可能用到递归。这样,只有在从数据库读取数据时慢一点,在ListView和
TreeView的操作时,速度没有问题
 
好谢谢你:),我和你的做法是一样的,所有的数据都在程序启动的时候全部一次读进我自定义
的链表的:),我也认为速度上应该是没有问题的,后来发现问题出在设置Column的width属性上
起初时我是把每个都设为-1的,这样就可以自动调整列宽,但是这样它会次DrawItem时都会
计算,计算量影响了刷新的速度:),现在把它设成一个规定的值OK啦,不过,还是要谢谢你:)
 

Similar threads

D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
809
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
777
DelphiTeacher的专栏
D
后退
顶部