Buscar

Pesquisar no simpledataset e autocompletar no edit

Código

{Esta procedure tem como função buscar informações no banco de dados e completar o texto do edit com o primeiro resultado encontrado, conforme a digitação prossegue o texto vai filtrando até chegar no resultado esperado.

A procedure é utilizada no evento onKeyUp do edit.}



procedure TFrmProcClientes.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var Texto: string;
    p: integer;
begin
  with Edit1 do   //Nome do edit que será utilizado para pesquisa.
  begin
    if key = 13 then  //Se for Enter
    begin
      SelStart := length(Text);  //Completa o texto.
      SelectNext(TWinControl(sender), true, true); //Passa o foco para o próximo componente segundo o taborder
    end
    else if key = 27 then //Se for Espaço
      Clear
    else
    begin
      if not (key = 08) or (key = 46) then //Se Não for BackSpace ou Delete
      begin
        p := SelStart;
        Texto := copy(text, 0, p);
        with DmBase.SdsProcClientes do
        begin
          FetchParams;
          Close;
          Params[0].AsString := Texto+'%'; //Pesquisa por toda palavra q começa com o texto digitado.
          Open;
          if not IsEmpty then  // Se Não for vazio
          begin
            DmBase.SdsProcClientes.First;
            text := DmBase.SdsProcClientes.FieldByName('NOME').AsString;  //o text do edit em questão recebe o complemento do texto digitado.
            SelStart := p;
            SelLength := length(text) - selStart;
          end;
        end;
      end;
    end;
  end;
end;

{Bom galera, meu problema está procedure resolveu. Mas qualquer dica para melhorar a procedure é bem vinda.

Meu e-mail fica a disposição!}


// Dheyson Wildny
// Analista / Programador
// e-mail: dheysonws@gmail.com

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Banco de dados
Adicionada dia: 10/04/07
Por: Dheyson Wildny
Visualizada: 9029 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009