加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – Firemonkey和大量数据

发布时间:2020-12-15 03:50:36 所属栏目:大数据 来源:网络整理
导读:我刚刚看了Firemonkey的网格实现,结果是它是一个非常简单的实现(只有1800行,对于网格实现来说似乎并不多).它几乎没有自定义绘画,而是聚合了很多其他控件 – 这似乎是Firemonkey的做事风格. 例如,每列保留一组控件 – 每个单元格一个.对于具有1,000,000行的正
我刚刚看了Firemonkey的网格实现,结果是它是一个非常简单的实现(只有1800行,对于网格实现来说似乎并不多).它几乎没有自定义绘画,而是聚合了很多其他控件 – 这似乎是Firemonkey的做事风格.

例如,每列保留一组控件 – 每个单元格一个.对于具有1,000,000行的正常文本列,网格将在内存中保留1,000个编辑控件 – 对我来说似乎有点疯狂. (编辑:如果这个假设是正确的,现在不太确定,似乎考虑到单元格的可见性,这可能意味着它提供了类似虚拟模式的东西,但我不太确定…)

我的问题:毫无疑问,Firemonkey的这个组件集合设计似乎简单而优雅,但是它的真实性是否会随网格中显示的数据量而变得很好?我无法想象它的行列表现很好. Firemonkey处理大量数据的方式是什么?

感谢任何投入.

解决方法

FireMonkey网格仅对可见线数量进行控制.
所以如果你有一个具有10个可见行和3列的网格,它将创建30个单元格控件.
使用10.000个记录填充网格是没有问题的:当您滚动30个单元格控件被重用并映射到新的可见行.

是的,我做了一些测试,因为我们有TMS网格与100.000记录:-).

如果您使用OnGetCellText(所以不是TStringgrid,这是非常慢的很多记录,特别是TMS网格(基于VCL stringgrid)),它非常快(OnGetCellText只检索可见单元格的数据).我们使用这种技术结合我们的数据对象(这些已经被加载,所以不需要再次用字符串值填充网格的每个单元格…),并且TMS和FMX网格都非常快,有100.000条记录或更多!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读