2011-12-21 55 views
6

我有一个TDataSource,这是由TClientDataset支持绑定到TStringGrid。我通过在网格上右键单击,选择“Link to DB Datasource...”并选择DataSource来完成此操作。这为我设置LiveBindings。如何使用LiveBindings在TStringGrid中显示200多行?

当我运行应用程序时,网格只填充200行,即使数据集中有5000条记录。

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

我发现在单位Data.Bind.DBScopeTBindScopeDBEnumerator.Create硬编码200值,当我把它提高到10000,我看到在网格中的所有5000行,但是这似乎是一个黑客。

在TStringGrid中显示200多行的正确方法是什么?

+0

为什么不使用TDBGrid? – kobik 2011-12-21 22:23:19

+0

@kobik - FireMonkey没有TDBGrid组件或任何TDB风格的组件。相反,您可以使用标准的TEdit,TStringGrid组件以及新的LiveBindings功能,这些功能允许您将标准控件的值绑定到数据库字段的值。 – LachlanG 2011-12-21 22:35:15

+0

对不起并没有意识到这是一个FireMonkey的问题在第一个地方... :-P – kobik 2011-12-21 22:45:25

回答

3

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

+2

我曾尝试更改此值已在代码中,窗体的OnCreate方法。显然,这太晚了。您必须在设计时更改IDE中的值,以便在创建时设置该值。这太疯狂了,-1意味着200.谢谢你的提示。 – 2011-12-22 14:28:24

+0

@lachlang似乎对于再无效的xe6,知道吗? – 2014-07-30 02:10:27

5

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

+1

手动设置buffercount可以真正吃掉你的记忆,但是在livebindings中加载巨型数据集也是如此。 – 2013-03-06 12:31:34