Array
(
)

Problemas na grid, com o Scroll e Atualização

Thiago Coleti
   - 08 dez 2005

Olá Pessoal...
venho aki pedir ajuda de vcs...
tenho uma grid comum ligada a uma query(Trabalho com Delphi 7, Zeos e PostgreSql), essa query com aproximadamente 48 campos de uma tabela... onde 6 desses campos são códigos do tipo int e são chave estrangeira de outras tabelas....

para esses 6 campos criei campos lookup para exibir informações como a descrição do campo que estava em outra tabela e coloquei nessa grid, para navegar pelo grid tah ok porém quando faço um scroll na grid ele fica muito lento.

Uso um componente..Key Navigator que controla essa navegação pela grid e nele tem o código

#Código



procedure TFFrotaTerc.KnFrtTrcKeyPress(Sender: TObject; Key: Word;
var Action: TEvNavAction);
if (Key = VK_DOWN) and (offset < qQtd.FieldByName(´qtd´).AsInteger-limite+1) and (qFrtTrc.RecNo = limite) then begin
Inc(offset);
AtualizaqFrtTrc;
qFrtTrc.Last;
end;
if (Key = VK_UP) and (offset > 0) and (qFrtTrc.RecNo = 1) then begin
Dec(offset);
AtualizaqFrtTrc;
qFrtTrc.First;
end;
procedure TFFrotaTerc.AtualizaqFrtTrc;
begin
qFrtTrc.Close;
qFrtTrc.ParamByName(´offset´).AsInteger := offset;
qFrtTrc.Open;
end;

procedure TFFrotaTerc.qFrtTrcAfterOpen(DataSet: TDataSet);
begin
qQtd.Close;
qQtd.SQL.Clear;
qQtd.SQL.Add(´select count(*) as qtd from frttrc´);
qQtd.Open;
end;


por favor analise e vejam se podem me ajuda nesse meu problema com a grid....por quando faço o scrool eu fecho e abro a query...
quando tem um ou dois campos lookup ele roda legal..mais acima de 3 ele fica lento....
tentei trazer os campos na query por sql porém também ficou lento..
por favor..analisem e vejam se podem me ajudar
Agradeço desde já