gpt4 book ai didi

delphi - 如何快速向 TStringGrid 添加多行?

转载 作者:行者123 更新时间:2023-12-03 15:18:26 25 4
gpt4 key购买 nike

我在谷歌上搜索并找到了很多建议,但这些建议似乎已经有好几年了,而且没有任何帮助。

我有一个包含 8 列的字符串网格,一旦我获得超过几百行,就需要 2 秒多的时间来填充(我使用 GetTickCount 进行比较)。

我尝试了 StringGrid.Perform(WM_SETREDRAW, 0, 0) (最后是 0, 1)。我尝试设置
更新时可见:= False
。两者都没用。

没有 BeginUpdate() 方法。

有什么建议吗?德尔福XE2起动机。如果经过尝试和测试,我愿意使用 FOSS 3rd party VCL string grid。

<小时/>

[更新] 使用 TDrawGrid ...“TDrawGrid 没有属性“Cells”,就像它的兄弟 TStringGrid 一样。您的代码必须计算在哪里显示数据,然后必须在其上绘制数据的表示形式网格的“ Canvas ”。

这对我来说听起来像是很多工作:-(

使用 VirtualTreeView - 听起来不错,如果它足够快的话。我只是不会有任何子节点。 (更新++我刚刚在the homepage上读到这篇文章“Virtual Treeview非常快。添加一百万个节点只需要700毫秒”)。那么速度就没有问题了。但如果只使用字符串网格就好了。特别是用户可以单击并排序的地方。

或者,字符串网格只有 20 行高。也许我可以在用户滚动时处理滚动条点击并清除并重新填充这 20 行?

[Furtehr update] 我从 TStringGrid 更改为 TListView,其中代码有 Beginupdate()),但这造成的差异可以忽略不计。哦,我忘了“虚拟模式”-brb。

顺便说一句,数据是只读的,仅供显示。

这肯定是一个非常常见的问题吗?

最佳答案

从下到上添加行,和/或随后设置RowCount。我刚刚做了a little test添加 90.000 行,增加约。速度提高 25%。

不过,这最多需要 1.5 秒。由于您谈论的只是几百行,因此我确信填充网格并不是这里的负担。相反,检索和/或转换数据所需的时间似乎是。

关于delphi - 如何快速向 TStringGrid 添加多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com