Validar pulsación 2 Teclas

Saludos:
Mi pregunta es la siguiente: ¿Cómo válido la pulsación de 2 teclas simultáneamente?. Me explico con un ejemplo:
Tengo en un textbox el siguiente texto:
Con diez cañones por banda
En otro textbox válido la entrada carácter a carácter y comparo con el text
If chr(keyascii) = mid(text1.text,cont,1) then 'donde cont es un contador que indica la  posción por la que voy escribiendo en el text2
  aciertos=aciertos+1
else
  errores = errores + 1
endif
El problema es que al pulsar la tecla shift (para poner la primera en mayúsculas) la detecta como tecla independiente y me da error. ¿Cómo puedo hacerlo?
Gracias de antemano y un saludo.

1 respuesta

Respuesta
1
Valida que si es la tecla SHIFT no la cuente
¿Cómo lo hago? Necesitaría también validar las teclas Alt (o AltGr) y Ctrl. Gracias de nuevo.
En el evento keyPress del control textbox que quieres validar preguntas (if) por el código ascii de la tecla presionada si corresponde a alguna de las teclas que pueden tener doble ingreso (shift, ctrl, alt, etc)
Mira, te dejo aquí el código para que puedas echarle un vistazo, así me aclaro mejor:
Dim errores As Integer
Dim aciertos As Integer
Dim cont As Integer
Sub Cargar_Txt(path As String)
Dim linea As String
If path = vbNullString Then Exit Sub
Text1 = ""
Open path For Input As #1
While Not EOF(1)
'Lee la linea del archivo
Line Input #1, linea
'La carga en el textbox
Text1 = Text1 & linea
Wend
'Cierra el archivo abierto
Close
End Sub
Private Sub Form_Load()
aciertos = 0
errores = 0
cont = 0
Cargar_Txt ("c:\pirata.txt")
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 1 Then ' se pulsó la tecla shift
KeyCode = 0
Else
cont = cont + 1
If (Chr(KeyCode) = Mid(Text1.Text, cont, 1)) Then
aciertos = aciertos + 1
Else
If (Chr(KeyCode) <> Mid(Text1.Text, cont, 1)) Then
errores = errores + 1
End If
Label1.Caption = aciertos
Label2.Caption = errores
End If
End If
End Sub
Necesitaría también saber la pulsación de la tecla AltGr para caracteres como @, {, etc.
Gracias
En el KeyDown, el parámetro KeyCode, es código Ascii de la tecla presionada, revisa la tabla de códigos ASCII, para conocer el código asignado a las teclas que tu necesitas, y haces un IF y haces lo que necesites hacer.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas