Ir para conteúdo
  • Cadastre-se

dev botao

Busca Incremental


  • Este tópico foi criado há 1983 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Consultas incrementais, como melhorei as minhas...

Crie um Timer, ele será responsável por executar suas consultas.


Propriedades do Timer
   Interval   = 300       // aqui vc configura a sensibilidade da coisa...
   Enabled = false  

procedure TF_PDV.Edit_ProdutoChange(Sender: TObject);
begin
  Timer.enabled := false;   // reset do timer a cada teclagem
  Timer.enabled := true;

  if empty(Edit_Produto.Text) then
    begin
      Timer.enabled := false; // campo vazio.... Timer desligado
      Query_Produtos.Close; // Consulta de produtos é fechada (necessário no meu caso)
    end;
end;

procedure TF_PDV.TimerTimer(Sender: TObject);
begin
  Timer.enabled := false;  // Timer atingiu o tempo, se desliga e dispara a consulta.
  Filtra_Produtos(Edit_Produto.Text);   // Função que dispara a consulta do produtos 
end;

Funcionamento
Quando o campo que vc utiliza receberem uma informação (onChange por exemplo)
esse evento irá resetar o timer e assim não desperdiçará uma ou mais consultas
com as teclagens iniciais, até o usuário terminar ou fazer uma pausa em sua digitação.  

No meu caso 300 milisegundos deram conta do recado...
ou seja, quando o usuário está teclando, sem saber a cada tecla na verdade
ele está postergado o disparo da consulta, assim que ele faz uma pausa
o timer inicia a contagem do tempo, e se atingir o liminar que você definiu
pronto, a consulta ocorre, se antes disso o distinto usuário pressionar 
outra tecla, o timer é interrompido e ninguém perde tempo com
disparados desnecessários das consultas;
se o campo estiver vazio o timer é desligado.

Fica minha contribuição. 
Abel F. de Angelis
AFA - Assessoria e Informática Ltda

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1983 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...