Pesquisando com dbgrid

04/09/2004

0

Olá amigos, como iniciante em delphi, recorro a vocês para o seguinte:

Como programava em DOS, em uma lista de clientes por exemplo, ia digitando o nome do cliente e o sistema ia se posicionando ao que perto se assemelhava, como já estava em cima do nome, dava enter e carregava aquele cliente.

Como poderia fazer isso em delphi, coloquei um dbgrid e um edit, vou digitando no edit e o sistema filtra corretamente através de instrução sql, só que o usuário é obrigado a dar um clique sobre o cliente que aparece no dbgrid para selecioná-lo, teria como digitar a procura sob o dbgrid, aí o foco já estaria no dbgrid e estaria resolvido.

Na verdade, essa é uma necessidade que temos em usuários de pequenas empresa, que são inimigos de mouse, então o que podermos fazer para facilitar, eles agradecem.

Espero contar com ajuda de vocês.
Uso delphi 7, dbexpress e firebird

Obrigado

Mario


Aldus

Aldus

Responder

Posts

04/09/2004

Vinicius2k

Colega,

Tente usar sua DBGrid com a opção ´AlwaysShowSelection´ como ´True´...

Isto causa um efeito visual, mas é, digamos, desnecessário... o ponteiro já está posicionado no registro desejado, e creio o seu evento do TEdit que dispara a seleção do cliente seria executado normalmente, a não ser que exista alguma particularidade que vc não mencionou...

Espero ter ajudado...
T+


Responder

01/10/2004

Carlos Bernardo

Eu uso assim...

Se o cara pressionar o enter do edit1

no evento onkeypress do edit

if Key = #13 then
begin
Perform( WM_NEXTDLGCTL, 0, 0 );
Key := 0;
dbgrid1.OnColExit(form2);
end;

se o cara pressionar as teclas <UP> ou <DOWN>

no evento onkeydown do edit

if key = vk_down then
begin
dbgrid1.SetFocus;
dm.tblProduto.Next;
end;
if key = vk_up then
begin
dbgrid1.SetFocus;
dm.tblProduto.Prior;
end;

e caso ele vá até o registro q quer selecionar pelo dbgrid, então:

no evento oncolexit do dbgrid :

fPedidoVenda.Enabled := True;
fPedidoVenda.dbgrid1.columns[0].field.text := dbgrid1.Columns[0].field.Text;
self.close;

no evento onkeydown do dbgrid :

case key of
13 : Key := 9;
end;
if (Shift = [ssCtrl]) and (Key = 46) Then
KEY := 0;

é mais ou menos isso, se tiver alguma dúvida, manda ae...


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar