Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Qua Mar 20, 2013 4:52 pm Assunto: foco no DbGrid |
|
|
pessoal ja dei uma procura mais não encontrei
estou no delphi xe2
tenho um grid com varios registros e varias colunas, na primeira coluna preciso do foco ai na segundo coluna o foco não pode passar por ela ai vem a terceira coluna precisa do foco ai tenho que pular para a segundo registro e fazer o mesmo processo como fazer essa interação de foco |
|
Voltar ao Topo |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Qua Mar 20, 2013 7:47 pm Assunto: |
|
|
Boa noite, nildglan.
Basta definir a coluna do DBGrid como ReadOnly = True. Assim o foco não entrará nela. |
|
Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Qua Mar 20, 2013 10:13 pm Assunto: |
|
|
batera o problema é q o foco ta saindo do dbgrid exemplo o foco esta na primeira coluna e quando pressiono enter o foco sai dbgrid e vai pra outro controle em vez de ir para outra coluna |
|
Voltar ao Topo |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Qua Mar 20, 2013 11:13 pm Assunto: |
|
|
Experimente alterar a propriedade dgTabs da DBGrid para True, e dgRowSelect para False. Essas duas propriedades estão dentro da propriedade Options. |
|
Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Qui Mar 21, 2013 2:16 pm Assunto: |
|
|
dgTabs = true e dgRowSelect = false e mesmo assim o foco sai |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Mar 21, 2013 3:01 pm Assunto: |
|
|
Boa tarde,
O problema ocorre apenas com a tecla Enter?
Com o Tab funciona corretamente?
Então acho melhor você postar o código utilizado para fazer com que o foco seja alterado quando o Enter é pressionado.
_________________
Assinatura: http://www.imoveisemexposicao.com.br/imobiliarias-em-suzano |
|
Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Qui Mar 21, 2013 6:00 pm Assunto: |
|
|
imex com a tecla tab funciona perfeiro com enter é que não da certo |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Mar 21, 2013 8:25 pm Assunto: |
|
|
Acredito que você utiliza código para alterar o foco para outro componente quando a tecla Enter é pressionada.
Se é esse o caso, acho que você vai ter que alterar esse código para verificar se o controle ativo é um DBGrid (ActiveControl is TDBGrid), e caso seja, simultar o pressionamento da tecla Tab. |
|
Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Qui Mar 21, 2013 8:29 pm Assunto: |
|
|
eu uso o codigo no keypress do form , como então eu simulo a tecla tab? |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Mar 21, 2013 8:35 pm Assunto: |
|
|
Experimente fazer um teste com esse código:
Código: | keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0); |
|
|
Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Qui Mar 21, 2013 9:02 pm Assunto: |
|
|
mais eu coloco em qual evento? |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Mar 21, 2013 10:28 pm Assunto: |
|
|
No meio do seu código para a tecla Enter, mais ou menos assim:
Código: | if Key = #13 then
if ActiveControl is TDBGrid then
begin
keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0)
end
else
begin
// código para a tecla Enter aqui
end; |
Espero que ajude. |
|
Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Sex Mar 22, 2013 11:31 am Assunto: |
|
|
imex
até que dessa forma deu certo
if Key = #13 then
if ActiveControl is TDBGrid then
begin
keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0)
end
else
begin
Key:= #0;
Perform(Wm_NextDlgCtl,0,0);
end;
o problema é que realmente agora esse só sai se vc for com mouse,
tenho em algums programas que ja vir usando dbgrid que quando ele sai do primeiro registro ele pula para o segundo se não for inseriodo registro ele sai e vai para o outro controle, vc sabe desse código? |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mar 22, 2013 12:17 pm Assunto: |
|
|
Quando deveria ir para o outro controle? Após pressionar Enter ou Tab quando o foco está na última coluna da direita? |
|
Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Sex Mar 22, 2013 2:37 pm Assunto: |
|
|
imex, é assim quando eu entro no grid ele gerar um numero certo? ai eu navego com a tecla enter até a útima coluna ai pressiono enter ele vai pra o segundo registro, no sistema que vir quando ele entra no segundo registro se eu não inserir registro ele sai o foco |
|
Voltar ao Topo |
|
 |
|