Ir para conteúdo
Fórum Script Brasil
  • 0

Uso da tecla Alt e Ctrl


Lameira

Pergunta

Olá Pessoal!!!

Gostaria de saber como posso usar a tecla Alt ou Ctrl associada com outra. Ex.: para chamar um novo registro o usuário vai teclar Alt+N ou Ctrl+N

como faço para associar duas teclas como no caso acima, sei que estas teclas não fazem parte da Ascii e os exemplos apresentados no forum com relação a tecla Alt não encontrei exemplos de código.

Tentei usar

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyControl And vbKeyN Then

Call NovoReg

End If

End Sub

Quando teclo Crtl+N soa um beep e nada mais acontece.

fico grato pelas sugestões.

Editado por Lameira
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
isso você ve pelo parametro Shift.

ctrl é 2 e alt é 4.

exemplo:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And KeyCode = vbKeyN Then
Call NovoReg
End If
End Sub

vlw Kuroi, funcionou beleza, só que com um detalhe: existe uma tecla atalho de navegação que os registros estão sendo intercalados, ou seja, do registro 1 vai para o registro 3 e assim por diante, com o brakepoint deu para verificar que o código é repedito 2x cada vez acionado as teclas de atalho(???). Quando vai ser inserido algum registro o usuário é avisado que um novo registro vai ser cadastrado atraves de um MsgBox..., esse aviso aparece duas vezes, isso confirma que realmente cada vez que as teclas são pressionadas o código replica.

Outra dúvida é que dependendo do que vai ser feito, alguns botóes ficam desabilitados e é necessário impedir que o usuário execute o código desses botões, ou seja, em determinadas circunstâncias eu preciso desabilitar a Tecla de Atalho. Tem como fazer isso???

Help me!!!! :rolleyes:

Editado por Lameira
Link para o comentário
Compartilhar em outros sites

  • 0
vlw Kuroi, funcionou beleza, só que com um detalhe: existe uma tecla atalho de navegação que os registros estão sendo intercalados, ou seja, do registro 1 vai para o registro 3 e assim por diante, com o brakepoint deu para verificar que o código é repedito 2x cada vez acionado as teclas de atalho(???). Quando vai ser inserido algum registro o usuário é avisado que um novo registro vai ser cadastrado atraves de um MsgBox..., esse aviso aparece duas vezes, isso confirma que realmente cada vez que as teclas são pressionadas o código replica.

isso ai ficou dificil de entender...

Outra dúvida é que dependendo do que vai ser feito, alguns botóes ficam desabilitados e é necessário impedir que o usuário execute o código desses botões, ou seja, em determinadas circunstâncias eu preciso desabilitar a Tecla de Atalho. Tem como fazer isso???

esse ai é so você por um teste:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If habilitado Then
   If Shift = 2 And KeyCode = vbKeyN Then
       Call NovoReg
    End If
End Sub[/code]

Link para o comentário
Compartilhar em outros sites

  • 0
vlw Kuroi, funcionou beleza, só que com um detalhe: existe uma tecla atalho de navegação que os registros estão sendo intercalados, ou seja, do registro 1 vai para o registro 3 e assim por diante, com o brakepoint deu para verificar que o código é repedito 2x cada vez acionado as teclas de atalho(???). Quando vai ser inserido algum registro o usuário é avisado que um novo registro vai ser cadastrado atraves de um MsgBox..., esse aviso aparece duas vezes, isso confirma que realmente cada vez que as teclas são pressionadas o código replica.

isso ai ficou dificil de entender...

Outra dúvida é que dependendo do que vai ser feito, alguns botóes ficam desabilitados e é necessário impedir que o usuário execute o código desses botões, ou seja, em determinadas circunstâncias eu preciso desabilitar a Tecla de Atalho. Tem como fazer isso???

esse ai é so você por um teste:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If habilitado Then
   If Shift = 2 And KeyCode = vbKeyN Then
       Call NovoReg
    End If
End Sub

Quanto a primeira parte, realmente tá complicado, existem algumas instabilidades no sistema, vou corrigir, qualquer coisa eu posto de novo, com relação a segunda parte, beleza!!! Mais uma vez muito obrigado!!!

Editado por Lameira
Link para o comentário
Compartilhar em outros sites

  • 0
vlw Kuroi, funcionou beleza, só que com um detalhe: existe uma tecla atalho de navegação que os registros estão sendo intercalados, ou seja, do registro 1 vai para o registro 3 e assim por diante, com o brakepoint deu para verificar que o código é repedito 2x cada vez acionado as teclas de atalho(???). Quando vai ser inserido algum registro o usuário é avisado que um novo registro vai ser cadastrado atraves de um MsgBox..., esse aviso aparece duas vezes, isso confirma que realmente cada vez que as teclas são pressionadas o código replica.

isso ai ficou dificil de entender...

Outra dúvida é que dependendo do que vai ser feito, alguns botóes ficam desabilitados e é necessário impedir que o usuário execute o código desses botões, ou seja, em determinadas circunstâncias eu preciso desabilitar a Tecla de Atalho. Tem como fazer isso???

esse ai é so você por um teste:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If habilitado Then
   If Shift = 2 And KeyCode = vbKeyN Then
       Call NovoReg
    End If
End Sub

Quanto a primeira parte, realmente tá complicado, existem algumas instabilidades no sistema, vou corrigir, qualquer coisa eu posto de novo, com relação a segunda parte, beleza!!! Mais uma vez muito obrigado!!!

Sobre a primeira parte, acredito que o sistema estava armazenando sujeira(?!?!), no final do procedure eu coloquei:

KeyCode = 0

Shift = 0

a partir disso o procedure não fica repetindo e os registros não pulam na sequência, ou seja agora fica assim, 1,2,3,4...ss. Não sei se isso é normal porque em outro form existe um procedure semelhante para Teclas de Atalho que não acontece isso, mais uma que não entendi(?!?!?!?)

Tenho mais uma dúvida, é possível chamar o código de um botão que esteja em MouseDown, tenho um botão que os registros vão sendo passados automaticamente (ver nesse forum: "Navegação automática através de um toolbar")..., eu tentei chamar assim:

call cmdFFW_MouseDown

e deu o seguinte erro:

Compile error: Argument not optional

conto com a sua ajuda mais uma vez. Grato

e deu o seguinte erro :blink:

Editado por Lameira
Link para o comentário
Compartilhar em outros sites

  • 0

mais um post sem resposta, não sei q não respondi antes...

Tenho mais uma dúvida, é possível chamar o código de um botão que esteja em MouseDown, tenho um botão que os registros vão sendo passados automaticamente (ver nesse forum: "Navegação automática através de um toolbar")..., eu tentei chamar assim:

call cmdFFW_MouseDown

e deu o seguinte erro:

Compile error: Argument not optional

é porque o evento MouseDown espera os parametros (Button As Integer, Shift As Integer, X As Single, Y As Single), você tem q passa-los pra poder chamar a sub.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...