如何使用LiveBindings在TStringGrid中显示超过200行?

6
我有一个由TClientDataset支持的TDataSource,绑定到一个TStringGrid。我通过右键单击网格,选择“Link to DB Datasource...”,并选择数据源来完成这个过程。这样设置后,LiveBindings会自动为我创建。

当我运行应用程序时,该网格仅填充了200行,尽管数据集中有5000条记录。

我无法找到任何关于如何更改显示的行数或允许用户滚动所有数据的正确方法的文档。

我在Data.Bind.DBScope单元中的TBindScopeDBEnumerator.Create方法中找到了硬编码的200值,当我将它增加到10000时,我可以看到网格中的所有5000行,但这似乎是一种hack方法。

如何以正确的方式在TStringGrid中显示超过200行?


@kobik - FireMonkey没有TDBGrid组件或任何TDB样式组件。相反,您可以使用标准的TEdit、TStringGrid组件以及新的LiveBindings功能,这些功能允许您将标准控件的值绑定到数据库字段的值,还有其他一些功能。 - LachlanG
抱歉,一开始没有意识到这是一个FireMonkey问题... :-P - kobik
2个回答

5

您可以更改TBindDBGridLink.BufferCount的值,而不是使用-1。但最好将TBindDBGridLink.AutoBufferCount设置为True


1
手动设置缓冲区计数可能会消耗大量内存,但在LiveBindings中加载巨大数据集也是如此。 - r_j

3

您需要在设计时将 TBindDBGridLink.BufferCount 的值从 -1 改为所需的任何值。


2
我已经尝试在代码中更改此值,在表单的OnCreate方法中。显然,那时为时已晚了。您必须在设计时在IDE中更改该值,以便在创建时设置该值。真是太疯狂了,-1表示200。感谢提示。 - Marcus Adams
@lachlang 看起来对于 xe6 不再有效,你知道吗? - Eduardo Elias

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接