Código
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
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009