Trabalhando com DBGRID

Delphi

11/08/2003

O Dbgrid possui o foco, como posso fazer para quando pressionar uma tecla pertencente ao nome do produto listado o ponteiro dirija-se a produto iniciado com a letra correspondente ao pressionamento, tipo um auto-complete.

Desde já agradeço pela ajuda.


Prosystem

Prosystem

Curtidas 0

Respostas

Koplin

Koplin

11/08/2003

Seria bom vc usar um edit para isso e no evento OnChange dele fazer:

If Edit1.text<>´´ then
Tabela.Locate(´nome_do_campo´,edit1.text,[locaseinsensitive,lopartialkey]);


GOSTEI 0
Allen74

Allen74

11/08/2003

Amigo,

A sugestão do colega koplin é válida pois assim você não estaria alterando o comportamento padrão do DBEdit que é entrar em modo de edição para alteração do conteúdo da célula selecionada. Isso no caso deste não ser apenas ReadOnly.

Imagino que você queira simular o recurso de pesquisa que existe no windows explorer, onde podemos ir digitando o nome do arquivo e ele tenta localicar o nome mais próximo ao que já foi digitado.

Se você quiser, você pode modificar o comportamento do DBEdit para funcionar desta forma, mas lembro para tomar cuidado quando alterar o comportamento padrão de um controle comum para não confundir seu usuário. A maioria dos usuários já sabem que um controle no estilo de tabelas permite a visualização e edição dos dados. Assim, você deve dar indicações visuais de que os registros não poderão ser alterados e que o usuário pode encontrar um registro iniciando a digitação do nome....

Mesmo assim, aconselho que você mantenha um Edit próximo ao DBGrid para que seu usuário saiba que pode pesquisar digitando parte do nome no edit.

Caso seu DBEdit esteja configurado apenas para leitura, você pode capturar as teclas digitadas no evento OnKeyPress do componente e concatenar os caracteres com o conteúdo atual do Edit. No Edit você acrescenta o código para pesquisa no evento OnChange. Você também terá decidir pelo tratamento das teclas de navegação até ajustar o formulário de pesquisa de forma a ober uma melhor usabilidade.


GOSTEI 0
POSTAR