ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Botão para navegar pelas colunas do DBGrid

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
moisesaugusto
Novato
Novato


Registrado: Quinta-Feira, 20 de Janeiro de 2011
Mensagens: 10
Localização: Bauru

MensagemEnviada: Qua Jan 06, 2016 6:52 pm    Assunto: Botão para navegar pelas colunas do DBGrid Responder com Citação

Estou desenvolvendo um aplicativo em Delphi 2010, para utilizar num tablet (Windows 8.1). Como os componentes ficam muito pequenos e às vezes o usuário terá de escolher clicando em uma lista de produtos, estou tentando colocar alguns botões ao lado da DBGrid (de tamanho razoável) que lhe permita fazer a escolha com a utilização do " touch " (ainda não vou utilizar recursos de scroll através de " gestures " --- Até consegui quando estou mexendo direto na tabela (dos vendedores ) --- com o uso de " prior", " next " porém não estou encontrando referências (já pesquisei arduamente ) a como fazer um botão onde eu coloque um código para ir para outra coluna, para baixo, para cima na DBGrid --- na verdade, trata-se de inclusão de carga de caminhões, em diversos dias da semana, então tem de " navegar " entre segunda a sexta-feira. Desculpem o tamanho do tópico.

Obrigado por qualquer ajuda.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Jan 06, 2016 7:23 pm    Assunto: Responder com Citação

Boa noite,

Não sei se entendi corretamente, mas experimente somar 1 na propriedade SelectedIndex do DBGrid para mover o foco para a coluna da direita, e subtrair 1 para mover para a coluna da esquerda.
Acho que para mover para as linhas de cima e de baixo devem ser utilizados os métodos Prior e Next do DataSet.

Espero que ajude


Editado pela última vez por imex em Ter Out 03, 2023 12:21 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
moisesaugusto
Novato
Novato


Registrado: Quinta-Feira, 20 de Janeiro de 2011
Mensagens: 10
Localização: Bauru

MensagemEnviada: Qua Jan 06, 2016 8:49 pm    Assunto: Responder com Citação

Boa noite, Imex.
Obrigado pela resposta.
Experimentei colocar o SelectedIndex da grade + 1, porém não funcionou.
Apesar de que, teoricamente, tem lógica, né..
Quanto ao prior e next (tentei fazer isso na table que estou utilizando (são pouquíssimos produtos ), porém, também não funcionou (antes de " rolar " para baixo na tabela, sempre vai para o primeiro registro (vou experimentar ainda colocar um " TbookMark" , mas creio mesmo que tem de ser manipulada alguma propriedade do DbGrid.
Vou continuar tentando, caso encontre alguma solução, postarei neste tópico.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qui Jan 07, 2016 8:17 am    Assunto: Responder com Citação

Tenho um programa semelhante ao que você precisa e funciona assim como o Imex citou.

A sub-propriedade de Options do DBGrid chamada dgRowSelect deve estar false:

Código:
DBGrid.Options := DBGrid.Options - [dgRowSelect];


Botão Próxima Coluna:

Código:
DBGrid.SelectedIndex := DBGrid.SelectedIndex + 1;
DBGrid.SetFocus;


Botão Coluna Anterior:

Código:
DBGrid.SelectedIndex := DBGrid.SelectedIndex - 1;
DBGrid.SetFocus;


Botão Próximo Registro:

Código:
DBGrid.DataSource.DataSet.Next;
DBGrid.SetFocus;


Botão Registro Anterior:

Código:
DBGrid.DataSource.DataSet.Prior;
DBGrid.SetFocus;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
moisesaugusto
Novato
Novato


Registrado: Quinta-Feira, 20 de Janeiro de 2011
Mensagens: 10
Localização: Bauru

MensagemEnviada: Dom Jan 10, 2016 8:11 am    Assunto: Responder com Citação

Olá, Natan. bom dia.
Infelizmente o código que você sugeriu não funcionou para mim. Estou utilizando windows 8.1 e Delphi 2010 ou delphi 7; tentei com os dois .
Veja você -- o teclado virtual que vem com o tablet no qual estou fazendo as experiências -- um Lenovo com SO windows 8.1, não tem as setas para baixo ou para cima - justamente as que preciso mais ( as da direita e esquerda, normal )...Estou tentando encontrar código delphi para elaborar meu próprio teclado virtual e inserir em meu aplicativo.
Abraços e, mais uma vez, agradecido.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Seg Jan 11, 2016 4:08 pm    Assunto: Responder com Citação

O que está acontecendo exatamente quando você executa o método Next?
Continua indo para o primeiro registro como você disse anteriormente?
Se sim, acredito que existe algum código em algum outro evento provocando esse problema.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
moisesaugusto
Novato
Novato


Registrado: Quinta-Feira, 20 de Janeiro de 2011
Mensagens: 10
Localização: Bauru

MensagemEnviada: Seg Jan 11, 2016 5:46 pm    Assunto: Responder com Citação

Ola, Imex . tudo bem ??
Obrigado pela sua atenção, porém estou resolvendo o problema de outra forma. Eu baixei um componente teclado virtual, pena que não tenho os fontes -- porém ele me permite editar todos os botões, inclusive eu somente coloco aqueles de que necessito -- no caso em determinado form coloco somente o numérico , em outros coloco ele completo.. Está ficando beleza, pois eu aumento as fontes das letras, adequando portanto ao meu aplicativo.

Agradeço a você e a todos os demais que tentaram auxiliar-me. Aqui em Bauru estarei também à disposição, dentro de meus parcos conhecimentos.
Abraços e desejo-lhes um excelente ano de 2016, com muita saúde.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
moisesaugusto
Novato
Novato


Registrado: Quinta-Feira, 20 de Janeiro de 2011
Mensagens: 10
Localização: Bauru

MensagemEnviada: Seg Jan 11, 2016 6:01 pm    Assunto: Responder com Citação

Olá, Imex, somente para complementar, respondendo à sua pergunta :
1) Eu tenho um DBGrid, onde aparecem os produtos (são uns 20).
2) Os campos são os dias da semana (quando o caminhão é carregado com os produtos).
3) Portanto, quando eu "entro no dbgrid" , o evento dos botão (bits com glyphs para esquerda , direita, pra baixo e pra cima ) ---- deveria fazer o mesmo que as setas normais do teclado fazem -- ou seja, ir naquela direção.
4) Tentei colocar o seguinte código no botão da seta para direita (por exemplo ) :
Keyb_Event (VK_Right, 0,0,0); ---- com o form em KeyPreview=True, deveria -- teoricamente -- " dizer " ao sistema que apertei a tecla para a direita -- correto ?
Porém o que ocorre é que o cursor retorna para a primeira coluna, primeiro produto (em vez de ir para o próximo dia da semana ).Posso estar em qualquer dos produtos acontece a mesma coisa.
Ah, sim, no evento OnKey_Down (do DBGrid ) então coloco aquele código :
if Key = VK_Right then GridCarga.SelectedIndex := GridCarga.SelectedIndex + 1;
Já faz uns três dias que estou direto nisso e não consegui. Por isso que estou resolvendo de outro jeito.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB