标题:表格中显示图片,当记录数较多时,单击表格会卡顿5秒并变成空白,过一会才显 ...
只看楼主
asis
Rank: 1
等 级:新手上路
威 望:1
帖 子:28
专家分:6
注 册:2022-9-6
结帖率:83.33%
已结贴  问题点数:20 回复次数:11 
表格中显示图片,当记录数较多时,单击表格会卡顿5秒并变成空白,过一会才显示正常,请教如何解决??
    在一个表格控件中显示每条记录的图片(是用ttt表的f2字段存放对应图片的存放路径,Thisform.grid1.Column2.Image1.Picture = ttt.f2),当记录数较多时,鼠标滚轮上下浏览表格时,只要单击表格任何一列都会卡顿5秒、鼠标指针转圈、表格只剩表头下面变成空白,像死机一样,过一会才又显示正常,在WIN10中卡顿较严重,请问有什么好的解决办法?谢谢!  
    这个表单已打包上传到附件中。

test.rar (26.68 KB)
搜索更多相关主题的帖子: 空白 表格 图片 单击 显示 
2023-01-07 21:57
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:7 
试试取消图片字段是否还慢,如果不慢了,那就是图片刷新造成的
我用过这种方式,后来放弃了,改成只显示当前记录的图片了
2023-01-07 22:03
asis
Rank: 1
等 级:新手上路
威 望:1
帖 子:28
专家分:6
注 册:2022-9-6
得分:0 
没有图片的记录,单击不卡,有图片的一点就卡住。
我用这个方法主要是能上下浏览表格时,图片能自动更新,速度尚可接受。但缺点是鼠标一单击就卡几秒。
上面这种方法就没有改进图片刷新的方法了吗?

您说:改成只显示当前记录的图片了 ,是指不在表格中显示图片了吗?
2023-01-07 22:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
如果是图标问题不大,如果是大图片就没必要这样做,用一个image控件就可以,反正都是看完一个再看另一个。
2023-01-07 22:38
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:7 
你说的记录数较多是过少?
我用你的示例,并另行复制了97张其他的图片,也就是总计100张不同的图片,未发现你描述的情况
2023-01-08 00:34
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
没有图片的记录,单击不卡,有图片的一点就卡住。
那就看有图片的记录点击的时候做了什么
2023-01-08 07:43
asis
Rank: 1
等 级:新手上路
威 望:1
帖 子:28
专家分:6
注 册:2022-9-6
得分:0 
    问题找到了,是我在表格的INIT中加入了移动记录时亮条显示:THIS.setall("Dynamicbackcolor", "IIF(RECNO()=grno,RGB(234,236,245),RGB(255,255,255))","Column")
取消后,单击记录时不再有明显的卡顿和表格变空白现象。不取消即使只有一条记录,单击也会卡住。
   


    以上方法可以不把图片事先装入DBF表的备注字段再显示,仅需用一个字段存放图片文件的路径即可,实现起来相对简单。但单击记录时还是有一点响应时间,有时在1秒左右,
这是不足之处。
    大家在利用表格控件显示和浏览大量记录及其对应的图片时,有什么更好的实现方法,可以集思广益,提出来与大家参考。
   
2023-01-08 10:09
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 7楼 asis
用PictureVal, 资源足可一次全部载入内存。
2023-01-08 12:18
asis
Rank: 1
等 级:新手上路
威 望:1
帖 子:28
专家分:6
注 册:2022-9-6
得分:0 
用PictureVal, 资源足可一次全部载入内存。
请问这个大概的实现步骤是什么?图片文件可以不事先写入DBF的备注字段吗?
2023-01-08 17:57
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
“但单击记录时还是有一点响应时间,有时在1秒左右”
说明你还没有找到卡顿的真实原因,用 backstyle 刷新一张图片,通常在 10ms 左右。最好放上真实的案例代码和数据
2023-01-08 19:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511068-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.137287 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved