GARANTIR DESCONTO

Fórum DBGRID #204923

07/01/2004

0

Ai galera, obrigado por me ajudarem em todas as minhas duvidas..

Por favor me ajudem em mais esta...

Eu tenho um form com um DGGRID e um edit onde eu faco uma pesquisa aproximada em uma tabela atraves do evento ONCHANGE do Edit...

Como faco para colocar o foco no DBGRID qdo eu pressionar as teclas seta para baixo e seta para cima ele role uma linha para cima ou para baixo np GRID?


Por exemplo:
Eu digito no Edit ´MARIA D´. No GRID aparece todos os clientes que comecam com Maria, eu quero pressionar seta para baixo ou para cima e o foco va direto para o GRID e role uma llinha para cima ou para baixo no GRID...


Certo que serei ajudado, desde ja agradeco...


Valeu..


Igor

Igor

Responder

Posts

07/01/2004

Fórum Vini

Olá,
coloque esse código no evento onKeyDown do Edit( ou do DbEdit ):
  if (Key = VK_UP) then
  begin
    ClientDataSet1.Prior;
    Key:= 0;
  end;
  if (Key = VK_DOWN) then
  begin
    ClientDataSet1.Next;
    Key:= 0;
  end;



Espero ter ajudado.
Vinicius.


Responder

Gostei + 0

08/01/2004

Igor

Valeu colega...

Deu certo mesmo...


Responder

Gostei + 0

08/01/2004

Marco Salles

Olá, coloque esse código no evento onKeyDown do Edit( ou do DbEdit ):
  if (Key = VK_UP) then
  begin
    ClientDataSet1.Prior;
    Key:= 0;
  end;
  if (Key = VK_DOWN) then
  begin
    ClientDataSet1.Next;
    Key:= 0;
  end;
Espero ter ajudado. Vinicius.


Vini. Tudo Indica Que ´Deu Certo Mesmo´ Como Nosso Amigo Colocou. Mas Gostaria Que Esta Dica fosse Mais Geral. Por Ser Uma Dica Interrresante. Ao Ler o Código Tive Uma Pequena Dúvida. A Instrução
[color=red:47b8176ec5]ClientDataSet1[/color:47b8176ec5] Não Será Identificada. Isto é Não Sendo Identificada, Não Roda, e Não Compila, Não Executa etc... [color=red:47b8176ec5]Esta Istrução Veio De Onde :?: [/color:47b8176ec5]


Responder

Gostei + 0

08/01/2004

Marco Salles

Desculpe-me Vini. Mas Antes De Enviar a Mensagem Anterior Eu Estava Tentando Digitar a Instrução. ´NomeMeuCampo´.DataSet.Prior´ e Não Estava Compilando. So Que Infelizmente Estava Digitando Esta Instrução Exatamente Em Um Lugar Errado De Um Evento. Então Por Gentileza Desconsidere a Mensagem Anterior e Seguimos Adiante.....


Responder

Gostei + 0

12/01/2004

Igor

Ai Pessoal resolvi voltar o tópico porque me surgiu uma pequena dúvida..
Qdo eu pressiono Seta p/ cima volta um registro no DBGRID, tudo bem ...
Só que tbem no Edito o ponto de inserção volta uma posição também, ficando no meio da string que eu digitei...
Como faço p/resolver isso galera?...


Valeu...


Responder

Gostei + 0

13/01/2004

Marco Salles

Não Dá Para Entender Esta Situação Igor. Pois O Código Que o Vini Sugeriu , Quando Pressionado a Seta Para Cima, é Atribuido Para ´Key´
o Valor De Zero(Key:=0);Agora Para Resolver De Fato o Seu Problema V.c Deve Passar Mais Informações Do Seu Código, Os Eventos Associados Etc...Por Exemplo, Suponha Um Form Com Uma Tabela, Um DbGrid,Um DataSource,Um Edit.Com Os Seguintes Eventos.No Evento OnCreate Do Form Fazemos a Indexação Da Tabela.No Evento OnChange Do Edit, Fazemos a Pesquisa Aproximada Usando
Table1.FindNearest([Edit1.Text]);E No Evento onKeyDown dO Edit1 Escrevemos O Código Que o Vini Sugeriu.Com Esses Eventos e Com Esses Códigos,Posso Garantir Para V.c, Que O Ponto De Inserção Não Volta.

Então Meu Amigo De Duas Uma, Ou Seu Projeto Tem Eventos Ou Códigos Que Deverão Serem Mencionados Para Podermos Esclarecer Esta Penimba Ou V.c Esta Digitando Alguma Coisa Errada


Responder

Gostei + 0

17/01/2004

Igor

Valeu Marcos....
Eu estava esquecendo justamente da instrução ´Key:=0;´
Deu certo...


Responder

Gostei + 0

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

Aceitar