Aplicacion para crear un teclado de celular: Alfanumerico.

Iniciado por FelixJMaxwell, 24 Febrero 2013, 21:39 PM

0 Miembros y 2 Visitantes están viendo este tema.

FelixJMaxwell

Buenas vagando mucho por internet y no encontrar nada al respecto me gustaria ponerlo aqui,
es una aplicacion para crear un celular con teclado alfanumerico en visual basic
esta incompleto me gustaria hacer unas preguntas para poder completarla o que alguien me heche una mano, esta la mayoria del codigo ya hecho solo hacen falta pequeños detalles para que parezca un teclado de celular funcional de tipo Alfanumerico (2 abc, 3 def, etc...)

pongo el codigo que da visual basic para crear la interfase tambien adjunto una imagen antes del codigo:



Código (vb) [Seleccionar]
Public Class Form1
   Dim nombreB As String = ""
   Public Sub ControlSetFocus(ByVal control As Control)
       ' Set focus to the control, if it can receive focus.
       If control.CanFocus Then
           control.Focus()
       End If
   End Sub

   Private Sub btnBorrar(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
       Dim resultado
       Dim borrar = txtPantalla.Text.Length - 1
       resultado = txtPantalla.Text.Substring(0, borrar)
       txtPantalla.Text = resultado

       txtPantalla.Focus()
       Dim Posicion = txtPantalla.Text.Length
       txtPantalla.SelectionStart = Posicion
   End Sub

   Private Sub btnDos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

       Dim Cars() As String = {"a", "b", "c", "2"}
       Static I As Integer = 0
       Dim ObjButton As Button = CType(sender, Button)
       If I >= Cars.Length Then
           I = 0
       End If
       If nombreB <> ObjButton.Text Then
           I = 0
           nombreB = ObjButton.Text
       Else
           txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)
       End If
       txtPantalla.Text = txtPantalla.Text & Cars(I)
       I = I + 1

       'Funcion MID
       'If txtPantalla.Text Then
       'txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)
       'End If


       Dim Posicion = txtPantalla.Text.Length
       txtPantalla.Focus()
       txtPantalla.SelectionStart = Posicion
   End Sub


   Private Sub btnTres_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
       Dim Cars() As String = {"d", "e", "f", "3"}
       Static I As Integer = 0
       Dim ObjButton As Button = CType(sender, Button)
       If I >= Cars.Length Then
           I = 0
       End If
       If nombreB <> ObjButton.Text Then
           I = 0
           nombreB = ObjButton.Text
       Else
           txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)
       End If
       txtPantalla.Text = txtPantalla.Text & Cars(I)
       I = I + 1

       txtPantalla.Focus()
       Dim Posicion = txtPantalla.Text.Length
       txtPantalla.SelectionStart = Posicion
   End Sub

   Private Sub btnCuatro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
       Dim Cars() As String = {"g", "h", "i", "4"}
       Static I As Integer = 0
       Dim ObjButton As Button = CType(sender, Button)
       If I >= Cars.Length Then
           I = 0
       End If
       If nombreB <> ObjButton.Text Then
           I = 0
           nombreB = ObjButton.Text
       Else
           txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)
       End If
       txtPantalla.Text = txtPantalla.Text & Cars(I)
       I = I + 1

       txtPantalla.Focus()
       Dim Posicion = txtPantalla.Text.Length
       txtPantalla.SelectionStart = Posicion
   End Sub

   Private Sub btnCinco_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
       Dim Cars() As String = {"j", "k", "l", "5"}
       Static I As Integer = 0
       Dim ObjButton As Button = CType(sender, Button)
       If I >= Cars.Length Then
           I = 0
       End If
       If nombreB <> ObjButton.Text Then
           I = 0
           nombreB = ObjButton.Text
       Else
           txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)
       End If
       txtPantalla.Text = txtPantalla.Text & Cars(I)
       I = I + 1

       txtPantalla.Focus()
       Dim Posicion = txtPantalla.Text.Length
       txtPantalla.SelectionStart = Posicion
   End Sub

   Private Sub btnSeis_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
       Dim Cars() As String = {"m", "n", "o", "6"}
       Static I As Integer = 0
       Dim ObjButton As Button = CType(sender, Button)
       If I >= Cars.Length Then
           I = 0
       End If
       If nombreB <> ObjButton.Text Then
           I = 0
           nombreB = ObjButton.Text
       Else
           txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)
       End If
       txtPantalla.Text = txtPantalla.Text & Cars(I)
       I = I + 1

       txtPantalla.Focus()
       Dim Posicion = txtPantalla.Text.Length
       txtPantalla.SelectionStart = Posicion
   End Sub

   Private Sub btnSiete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
       Dim Cars() As String = {"p", "q", "r", "s", "7"}
       Static I As Integer = 0
       Dim ObjButton As Button = CType(sender, Button)
       If I >= Cars.Length Then
           I = 0
       End If
       If nombreB <> ObjButton.Text Then
           I = 0
           nombreB = ObjButton.Text
       Else
           txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)
       End If
       txtPantalla.Text = txtPantalla.Text & Cars(I)
       I = I + 1

       txtPantalla.Focus()
       Dim Posicion = txtPantalla.Text.Length
       txtPantalla.SelectionStart = Posicion
   End Sub

   Private Sub btnOcho_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
       Dim Cars() As String = {"t", "u", "v", "8"}
       Static I As Integer = 0
       Dim ObjButton As Button = CType(sender, Button)
       If I >= Cars.Length Then
           I = 0
       End If
       If nombreB <> ObjButton.Text Then
           I = 0
           nombreB = ObjButton.Text
       Else
           txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)
       End If
       txtPantalla.Text = txtPantalla.Text & Cars(I)
       I = I + 1

       txtPantalla.Focus()
       Dim Posicion = txtPantalla.Text.Length
       txtPantalla.SelectionStart = Posicion
   End Sub

   Private Sub btnNueve_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
       Dim Cars() As String = {"w", "x", "y", "z", "9"}
       Static I As Integer = 0
       Dim ObjButton As Button = CType(sender, Button)
       If I >= Cars.Length Then
           I = 0
       End If
       If nombreB <> ObjButton.Text Then
           I = 0
           nombreB = ObjButton.Text
       Else
           txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)
       End If
       txtPantalla.Text = txtPantalla.Text & Cars(I)
       I = I + 1

       txtPantalla.Focus()
       Dim Posicion = txtPantalla.Text.Length
       txtPantalla.SelectionStart = Posicion
   End Sub

End Class



Considero que se le deben agregar mas botones para el correcto parecido a un teclado de Celular

Cosas faltantes:
CitarAl momento de presionar el mismo boton por ejemplo:
Se presiona "2 abc" en pantalla aparece: abc2abc2 en lugar de cambiar la primera a por una b
para que en pantalla solo salga: "b" al presionar por segunda vez el boton "2 abc"
CitarFalta poder hacer un cambio entre minusculas y mayusculas asi como agregar los caracteres del boton 1 que son en la mayoria de celulares estos: " . , / ? ! - : ' " 1 "
CitarFalta agregar un timer para que pasados 3 segundos el puntero avance automaticamente en caso de querer escribir una misma tecla en un espacio aparte

si alguien quiere aportar algo sientase libre de hacerlo y si se debe hacer algun cambio en alguna parte que tambien lo diga y modificare el post principal.

Saludos.

FelixJMaxwell

#1
- Post Apartado para anotar actualizaciones del post principal -

- Agregado codigo:
Código (vb) [Seleccionar]
Else
            txtPantalla.Text = Mid(txtPantalla.Text, 1, Len(txtPantalla.Text) - 1)

que permite presionar dos veces una misma tecla y que cambie de "a" a "b" sin mostrar dos letras en la textbox "ab"