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

08/12/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


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á


Thiago Coleti