2011-12-21 9 views
6

Ho un TDataSource supportato da un TClientDataset associato a TStringGrid. L'ho fatto facendo clic con il tasto destro sulla griglia, selezionando "Link to DB Datasource..." e selezionando il DataSource. Questo installa i LiveBindings per me.Come mostrare più di 200 righe in TStringGrid usando LiveBindings?

Quando si esegue l'applicazione, la griglia si riempie solo di 200 righe, anche se ci sono 5000 record nel set di dati.

Non riesco a trovare alcuna documentazione su come modificare il numero di righe visualizzate o il modo corretto per consentire all'utente di scorrere tutti i dati.

ho trovato l'hard coded 200 valore nel TBindScopeDBEnumerator.Create nell'unità Data.Bind.DBScope, e quando ho aumentare a 10000, vedo tutte le 5000 righe della griglia, ma questo mi sembra un hack.

Qual è il modo corretto per mostrare più di 200 righe in un TStringGrid?

+0

perché non utilizzare TDBGrid? – kobik

+0

@kobik - FireMonkey non ha un componente TDBGrid o alcun componente di stile TDB. Invece si utilizzano i componenti standard di TEdit, TStringGrid con la nuova funzione LiveBindings che, tra le altre cose, consente di associare i valori dei controlli standard ai valori dei campi del database. – LachlanG

+0

scusa non ho capito che si tratta di un problema di FireMonkey in primo luogo ... :-P – kobik

risposta

3

È necessario modificare TBindDBGridLink.BufferCount in fase di progettazione da -1 a qualsiasi valore necessario.

+2

Ho provato a modificare questo valore già nel codice, nel metodo OnCreate del modulo. Apparentemente, era troppo tardi. È necessario modificare il valore nell'IDE in fase di progettazione in modo che il valore venga impostato al momento della creazione. È pazzesco che -1 significhi 200. Grazie per il suggerimento. –

+0

@lachlang Sembra che per xe6 che non è più valido, lo sai? –

5

È possibile modificare TBindDBGridLink.BufferCount per un valore desiderato piuttosto -1. Ma è meglio impostare lo TBindDBGridLink.AutoBufferCount su True.

+1

l'impostazione manuale del buffercount può davvero consumare la memoria, ma lo stesso vale per il caricamento di set di dati giganti nei livebindings. –

Problemi correlati