Erro ao selecionar mais de 52 registros em uma TcxGrid no Delphi

29/08/2019

5

estou fazendo um sistema que precisa selecionar muito registros em uma Tcxgrid, se for apenas selecionar não há problema.
Mas o problema acontece se tentar acessar os valores dos registros selecionados se a quantidade for maior que 52.

Ex:
For I := 0 to GradeTableView1.Controller.SelectedRecordCount - 1 do begin
X := GradeTableView1.Controller.SelectedRows[I].Values[GradeTableView1CAMPO.index]
End;

Quando o (I) chega ao valor 52 da um erro de memória.
Alguém sabe como posso resolver esse problema?

Obrigado!
Emilio Filho

Emilio Filho

Responder

Posts

29/08/2019

Emilio Filho

Problema resolvido..... Era apenas Desabilitar o GridMode do Data controler...

Quando o Grid funciona no GridMode, ele não carrega todos os dados no DataController. Carrega uma pequena parte dos dados, o suficiente para exibir apenas registros visíveis. No entanto, outros registros não são carregados instantaneamente. Eles são carregados apenas quando você os rola. No entanto, nesse caso, a parte antiga dos dados é descarregada do DataController e não conhece esses registros.
Por exemplo, o DataSet contém 100 registros. Quando o GridMode está ativado, o DataController carrega, por exemplo, 40 registros para preencher a área visível da tela. Em seguida, você rolar os dados do GridView. Nesse caso, o DataController carrega a próxima parte dos registros visíveis e descarrega os registros visíveis anteriores, que ficaram invisíveis devido à rolagem.
Portanto, o Grid não pode conter todos os seus dados no mesmo momento em que o GridMode é usado.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar