2011-12-21 9 views
6

Tengo un TDataSource que está respaldado por un TClientDataset vinculado a un TStringGrid. Hice esto haciendo clic derecho en la grilla, seleccionando "Link to DB Datasource..." y seleccionando DataSource. Esta configuración LiveBindings para mí.¿Cómo mostrar más de 200 filas en TStringGrid usando LiveBindings?

Cuando ejecuto la aplicación, la cuadrícula solo se llena con 200 filas, a pesar de que hay 5000 registros en el conjunto de datos.

No puedo encontrar ninguna documentación sobre cómo cambiar el número de filas que se muestran o la forma correcta de permitir al usuario desplazarse por todos los datos.

Lo que encontrar el valor codificado en 200TBindScopeDBEnumerator.Create en la unidad Data.Bind.DBScope, y cuando puedo aumentar a 10000, veo todas las 5000 filas de la parrilla, pero esto parece un truco.

¿Cuál es la forma correcta de mostrar más de 200 filas en un TStringGrid?

+0

¿por qué no utilizar TDBGrid? – kobik

+0

@kobik: FireMonkey no tiene un componente TDBGrid ni componentes de estilo TDB. En su lugar, utiliza componentes estándar TEdit, TStringGrid con la nueva función LiveBindings que, entre otras cosas, le permite vincular los valores de los controles estándar a los valores de los campos de la base de datos. – LachlanG

+0

lo siento, no me di cuenta que es un problema FireMonkey en primer lugar ... :-P – kobik

Respuesta

3

Debe cambiar el TBindDBGridLink.BufferCount en designtime desde -1 al valor que necesite.

+2

He intentado cambiar este valor ya en el código, en el método OnCreate del formulario. Aparentemente, eso fue demasiado tarde. Debe cambiar el valor en el IDE en el momento del diseño para que el valor se establezca cuando se crea. Es una locura que -1 significa 200. Gracias por la pista. –

+0

@lachlang Parece que para xe6 eso ya no es válido, ¿sabe de eso? –

5

Puede cambiar el TBindDBGridLink.BufferCount por el valor que desee más bien -1. Pero es mejor configurar el TBindDBGridLink.AutoBufferCount en True.

+1

configurar la cuenta de memoria de forma manual puede realmente comer tu memoria, pero también está cargando conjuntos de datos gigantes en las conexiones en vivo. –

Cuestiones relacionadas