El Tilde A Que Key.code Corresponde?


Objetivo: 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

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

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1053s (PHP: -15% SQL: 115%)
Consultas SQL: 23 - Debug off - GZIP Activado