Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

El Tilde A Que Key.code Corresponde?

El Tilde A Que Key.code Corresponde?
Artículo
Responder citando    Descargar mensaje  
Mensaje El Tilde A Que Key.code Corresponde? 
 
tengo esta rutina de filtrado de teclas y quiero agregar el tilde pero hasta ahora no he encontrado la forma.

Public Sub FiltroTeclas(SiEspacio As Boolean)

  If SiEspacio = True Then
    
      Select Case Key.Code
        Case 65 To 90
        Case 46 'punto
        Case 241 'letra ñ   -  nueva linea
        Case 209 'letra ñ   -  nueva linea
        Case Key.BackSpace
        Case Key.Left
        Case Key.Delete
        Case Key.Right
        Case Key.Tab
        Case Key.BackTab
        Case Key.Space
        Case Key.Down
        Case Key.Home
        Case Key.End
        Case Else
            Print Key.Code
            Stop Event
      End Select
  Else
   Print "sin espacio"
      Select Case Key.Code
        Case 65 To 90
        Case 241 'letra ñ   -  nueva linea
        Case 209 'letra ñ   -  nueva linea
        Case Key.BackSpace
        Case Key.Left
        Case Key.Delete
        Case Key.Right
        Case Key.Tab
        Case Key.BackTab
        ' Case Key.Space ' espacio eliminado para que no se pongan dos nombres o apellidos
        Case Key.Home
        Case Key.End
        Case Else
            Print Key.Code
            Stop Event
      End Select
  Endif
  
End




 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Jueves, 24 Septiembre 2015, 20:25 ]
 


El Tilde A Que Key.code Corresponde?
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: El Tilde A Que Key.code Corresponde? 
 
Pos ni idea. Lo mismo es un código de UTF-8 o algo así...



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Jueves, 24 Septiembre 2015, 20:29 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Tilde A Que Key.code Corresponde? 
 
Cuando dices tilde, entiendo que te refieres a símbolo de acento y no a la ñ tilde (virgulilla) o a la diéresis, etc.

El acento agudo parece ser el código ASCII 180, pero desconozco si realmente se genera ese código en todos los teclados internacionales. En su lugar se usan las vocales con tilde (acento), que tienen su propio código ASCII.

Otra cosa muy distinta es la tecla que genera la tilde y que se pulsa justo antes de la vocal (o consonante, no hay limitación aquí). Creo que tú mismo lo puedes averiguar mediante el método keypress imprimiendo en consola el código de cualquier tecla pulsada.

De todos modos, creo que deberías replantearte las rutinas para impedir o permitir que el usuario introduzca ciertos caracteres, ya que dependiendo del tipo de teclado, idioma y otros factores no es algo muy consistente. En lugar de hacer eso, creo que deberías tratar la cadena introducida por el usuario de la manera que necesites, por ejemplo, eliminando espacios o convirtiendo todo a minúsculas para compararlo con el contenido la base de datos (hay funciones en el propio lenguaje SQL para ello, también), usando codificaciones de la base de datos que permitan UTF-8, etc, etc...

Por cierto, recuerda que la clase Key se puede usar para obtener el código de la tecla o el texto de la misma:

if Key.Code = Key.Space

if Key.Text = "A"

if Key.Code = Key["A"] Then...

Además, tal como se explica en la ayuda de  gambas:

"Nunca compares el valor de ésta propiedad con una constante numérica, porque los códigos de teclado dependen del kit de herramientas subyacente (qt, gtk, etc).
Siempre se deben usar las constantes definidas dentro de la propia clase."


Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Jueves, 24 Septiembre 2015, 23:05 ]
Responder citando    Descargar mensaje  
Mensaje Re: El Tilde A Que Key.code Corresponde? 
 
buenas sugerencias jguardon, tratare de corregir el código en lo que me sea posible y entendible.

mejore la rutina así funciona:


Public Sub FiltroTeclas(SiEspacio As Boolean)

  Print Key.Code
  
  If SiEspacio = True Then
    
      Select Case Key.Code
        Case 65 To 90
        Case 46 'punto
        Case Key.BackSpace
        Case Key.Left
        Case Key.Delete
        Case Key.Right
        Case Key.Tab
        Case Key.BackTab
        Case Key.Space
        Case Key.Down
        Case Key.Home
        Case Key.End
        Case Else
           Select Case Key.Text
              Case "ñ"
              Case Else
                 Stop Event
           End Select
      End Select
      
  Else
   Print "sin espacio"
      Select Case Key.Code
        Case 65 To 90
        Case Key.BackSpace
        Case Key.Left
        Case Key.Delete
        Case Key.Right
        Case Key.Tab
        Case Key.BackTab
        Case Key.Home
        Case Key.End
        Case Else
           Select Case Key.Text
              Case "ñ"
              Case Else
                 Stop Event
            End Select
      End Select
  Endif

End




 
v3ctor - Ver perfil del usuario Enviar mensaje privado  
v3ctor [ Viernes, 25 Septiembre 2015, 17:27 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron