GARANTIR DESCONTO

Fórum AutoCompletar com DBgrid #240484

30/06/2004

0

E aí Galera...

Tenho uma tabela de preços em um DBGrid com 3 colunas: Código, produto e preço.

Quero colocar um Edit para o usuário procurar pelo nomr do produto desejado. Aí que entra o auto completar. No onchange do edit quero que ele localize no DBGrid.

Valeu Galera...


Tcharlos

Tcharlos

Responder

Posts

30/06/2004

Lucas Silva

Dê uma olhada no texto.
Resumo: À medida que o usuário digita algo numa combo, procura por um item e mostra o que falta ser digitado, como na combo endereço do IE ou Netscape. Opcionalmente, se o usuário digitar , pula para o próximo componente, como se tivesse teclado . Texto: Este recurso permite preencher automaticamente um combobox com um item sem que o usuário precise digitar tudo. Semelhante ao que existe na combo ´endereço´ do IE ou do Netscape. O usuário vê em azul ( selecionado ) o que falta ser preenchido. Se o usuário teclar o autopreencher para. Outro recurso ( que pode ser retirado ) permite que ao se teclar pule-se para o próximo componente, como se tivesse sido teclado . Tendo o seguinte formulário: Form1 = class(Tform1) Combobox1 : Tcombobox; private Autopreencher : boolean; Precisamos definir os métodos OnChange, OnKeyPress e OnEnter, como segue: procedure Tform1.Combobox1Enter(Sender: TObject); begin autopreencher := true; end; procedure Tform1.Combobox1Change(Sender: TObject); var tam,cont : integer; begin if autopreencher then with (sender as Tcombobox) do begin tam := length(text); for cont := 0 to items.Count - 1 do if 0=ansicomparetext(text,copy(items.Strings[cont],1,tam)) then begin text := items.strings[cont]; selstart := tam; sellength := length(text); break; end; end; end; procedure Tform1.Combobox1KeyPress(Sender: TObject; var Key: Char); var prox : boolean; begin with (sender as tcombobox) do begin Autopreencher := true; prox := false; case ord(key) of vk_return : begin selstart := length(text); sellength := 0; key := #0; DroppedDown := false; Prox := true; end; vk_back : Autopreencher := false; end; if (not Autopreencher) and (SelText <> ´´) then begin text := copy(text,1,selstart); selstart := length(text); sellength := 0; key := #0; end; end; if prox then findnextcontrol(sender as tcombobox,true,true,false).SetFocus; end;



Responder

Gostei + 0

30/06/2004

Tnaires

Olá
SQL do Query do DBGrid:
SELECT Codigo, Produto, Preco FROM Produtos
WHERE Produto LIKE :Produto

Edit:
TForm1.Edit1OnChange(Sender: TObject)
begin
  with Query1 do
  begin
    Close;
    ParamByName(´Produto´).AsString := Edit1.Text + ´¬´;
    Open;
  end;
end;

Abraços


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar