Este contenido está pensado en la clase de Tecnologías Móviles, la semana anterior hemos examinado el IDE de Visual Studio 2008, además consideramos algunas de las ventajas y limitaciones de los dispositivos móviles.
Ahora recordaremos algunas características del lenguaje Visual Basic ya que hace varios meses que no le damos uso, para ello empezaremos con algunos ejercicios sencillos a manera de “calistenia”.
Ahora seleccionamos la plantilla “Aplicación de dispositivo” y aceptamos:


If condición_a_evaluar Then
sentencias_si_verdadero
End If
La “condición_a_evaluar” es una expresión que debe devolver como respuesta si es verdadero o falso (del tipo “var1 > var2” o “dia_semana <> 7”), solamente en el caso que sea verdadero se efectuarán las instrucciones “sentencias_si_verdadero”.
¿Y si ocurre que devuelve “falso”? Entonces hará nada, pero si deseamos ejecutar algo para esa situación usaremos “Else”, también pudiera darse la situación de quere evaluar más de una condición, entonces la estructura sería:
If condición1 Then
sentencias_si_condición1_verdadero
Elseif condición2 Then
sentencias_si_condición2_verdadero
Elseif condición3 Then
sentencias_si_condición3_verdadero
Else
sentencias_si_todas_falsas
End If
Para ejecutar las acciones usaremos el mainMenu1, selecciónelo en la zona inferior de la pestaña de diseño, en el formulario nos mostrará un recuadro “Escriba aquí”
Allí colocamos el texto “Tareas” y pulsamos la tecla “Intro” (Enter), sobre el texto agregado podemos agregar un nuevo ítem “Iniciar”, luego, debajo de este agregamos “Limpiar” y quedará así:
Hemos agregado tres ítem al menú que por defecto se llaman MenuItem1, MenuItem2 y MenuItem3 en el orden que los agregamos. Implementemos “Iniciar”, sobre este damos doble clic para pasar a implementar el evento clic, en la vista de código tenemos en parte:
Esto es lo que se ejecutará cuando se de el evento “Click” sobre el “MenuItem2” (Iniciar):

¿Y si el usuario no escribió algo al momento de dar clic? Recordemos que esto se ejecutara solo si no hay una cadena vacía en txtNombre (txtNombre.Text <> “”), podríamos implementar un mensaje para el caso que no haya ingresado:
Otra manera de manejar la condicional es con el propio “Lenght()”, pero aún así tendríamos un problema, por ejemplo, ejecute e ingrese un espacio en blanco.
Como los espacio también son caracteres se inician las sentencias, para controlar también esto podríamos implementar “Trim” que elimina esos espacios en blanco al inicio y final de la cadena y luego contamos con “Lenght()”:

Haciendo un poco de memoria, en la implementación anterior se muestra el MessageBox cuando el usuario ingresó una cadena de uno o más espacios en blanco (ya no es una cadena vacía), cuando cierre el MessageBox los espacios en blanco seguirán allí, sería una buena idea borrarla.
Select Case dato_a_evaluar
Case valor_comparado1
sentencias_si_valor_comparado1_verdadero Case valor_comparado2
sentencias_si_valor_comparado2_verdadero Case valor_comparado3
sentencias_si_valor_comparado3_verdadero Case Else
sentencias_si_todas_falsas
End Select
En donde dato_a_evaluar es el dato que vamos a ir comparando su igualdad con otros valores (habitualmente es una variable), de esa comparación se obtiene “true” o “false”. El valor_comparado1 es el valor contra el que se compara dato_a_evaluar, si devuelve verdadero se ejecutarán las sentencias_si_valor_comparado1_verdadero, si devuelve falso se pasa a la siguiente comparación hasta hallar la primera que sea verdadera. ¿Y si ninguna es verdadera? entonces se ejecutarán las sentencias_si_todas_falsas (el bloque con Else es opcional).
Agregamos un nuevo formulario, menú: Proyecto > Agregar WindowsForm…
dejamos con el nombre por defecto
Pediremos al usuario que ingrese su edad y con eso calcularemos la etapa de desarrollo en que se encuentra de acuerdo a la siguiente lista:

Para establecer el Form2 como formulario inicial, en el explorador de soluciones (a la derecha y arriba) clic derecho sobre el proyecto “Semana02” (o el nombre que le hayas puesto, aparece en negrita), clic en la opción “Propiedades”, en la ventana que se muestra busca “Objeto de inicio” y selecciona Form2 de la lista y ejecuta:
Ahora recordaremos algunas características del lenguaje Visual Basic ya que hace varios meses que no le damos uso, para ello empezaremos con algunos ejercicios sencillos a manera de “calistenia”.
El Proyecto
Nuevo proyecto (Ctrl + Mayús + N) y procedo a seleccionar un proyecto “Smart Device” con el lenguaje Visual Basic (dependiendo de varios factores quizá la apariencia de su cuadro de diálogo podría diferir de la siguiente imagen) y aceptamos:Ahora seleccionamos la plantilla “Aplicación de dispositivo” y aceptamos:

Propiedades Comunes de los Formularios
Tras unos segundos estamos frente al primer formulario del proyecto, recordemos algunas de sus propiedades:
- DataBindings: Que usaremos para enlazar controles a BD.
- Name: El nombre del control (el formulario en este caso), es el que usaremos en el código para referirnos a este objeto.
- AutoScroll: Está en “True” por defecto, significa que cuando un control se encuentre fuera del área visible de forma automática se mostrarán las barras de desplazamiento (usada por ejemplo al mover objetos).
- BackColor: Color de fondo.
- ControlBox: Al cambiarlo a “False” le quitamos al formulario el botón para cerrarlo.
- Enabled: Para habilitar o no el formulario.
- Font: Establecer fuente (tipo de letra) y su tamaño.
- ForeColor: Color de la fuente (establecido en Font).
- Icon: Ícono del formulario, se muestra en el menú del sistema cuando este se minimiza.
- Menu: Indica el menú asociado al formulario, por defecto cada formulario ya tendrá asociado a mainMenu1.
- Skin: Al pasarlo a “False” se oculta la “carcasa” del dispositivo en tiempo de diseño, algunos lo prefieren para concentrarse en el formulario o por las dimensiones de la pantalla.
- Text: Texto en la barra de título.
- ToolBar: Indica la barra de herramientas asociada al formulario.
Propiedades de los TextBox
Al igual que en el caso anterior solo repasaremos las propiedades más comunes o que necesitaremos en posteriores ejercicios:- BorderStyle: Permite quitar el borde del control o aplicarle un estilo.
- Dock: Si se acopla o no el control a alguno de los lados del contenedor.
- Location: La posición del control, entre la esquina superior izquierda del contenedor y la esquina superior izquierda del TextBox. Se establece mediante eje “y” (vertical) y “x” (horizontal).
- MaxLength: Máximo de caracteres que se podrían ingresar.
- Multiline: Al pasarlo a “True” el control aceptará el ingreso de varias líneas de texto.
- PasswordChar: Enmascara o reemplaza los caracteres ingresados por el caracter que aquí indiquemos (habitualmente el asterisco).
- ReadOnly: Al pasarlo a “True” no se podrá editar su contenido.
- ScrollBar: Si debe mostrar las barras de desplazamiento (al usar multi-línea).
- Size: Dimensiones del control, ancho (width) y alto (height).
- TextAlign: Alineación del contenido en el control.
- Visible: Al pasarlo a “False” el control se ocultará.
Sentencia Condicional If - Elseif - Else
La estructura de una condicional en su forma más sencilla sería:If condición_a_evaluar Then
sentencias_si_verdadero
End If
La “condición_a_evaluar” es una expresión que debe devolver como respuesta si es verdadero o falso (del tipo “var1 > var2” o “dia_semana <> 7”), solamente en el caso que sea verdadero se efectuarán las instrucciones “sentencias_si_verdadero”.
¿Y si ocurre que devuelve “falso”? Entonces hará nada, pero si deseamos ejecutar algo para esa situación usaremos “Else”, también pudiera darse la situación de quere evaluar más de una condición, entonces la estructura sería:
If condición1 Then
sentencias_si_condición1_verdadero
Elseif condición2 Then
sentencias_si_condición2_verdadero
Elseif condición3 Then
sentencias_si_condición3_verdadero
Else
sentencias_si_todas_falsas
End If
El Diseño y Propiedades
Recordados estos aspectos (otros los iremos aclarando según avancemos) pasemos a agregar dos Label y dos TextBox (las propiedades comunes de Label coinciden con las de TextBox):
EL usuario ingresará su nombre en el primer TextBox, luego mostraremos en los siguientes TextBox el nombre ingresado en mayúsculas, minúsculas y contaremos sus caracteres.
Name | Text | Enabled | |
Form1 | Ejercicio 1 | ||
Label1 | Nombre | ||
Label2 | Mayúsculas | ||
Label3 | Minúsculas | ||
Label4 | Caracteres | ||
TextBox1 | txtNombre | ||
TextBox2 | txtMayus | False | |
TextBox3 | txtMinus | False | |
TextBox4 | txtCaracteres | False |
Allí colocamos el texto “Tareas” y pulsamos la tecla “Intro” (Enter), sobre el texto agregado podemos agregar un nuevo ítem “Iniciar”, luego, debajo de este agregamos “Limpiar” y quedará así:
Hemos agregado tres ítem al menú que por defecto se llaman MenuItem1, MenuItem2 y MenuItem3 en el orden que los agregamos. Implementemos “Iniciar”, sobre este damos doble clic para pasar a implementar el evento clic, en la vista de código tenemos en parte:
Esto es lo que se ejecutará cuando se de el evento “Click” sobre el “MenuItem2” (Iniciar):
- Revisar si se escribió algo en el txtNombre
If txtNombre.Text <> “” Then - Si existe ese nombre lo recuperamos
Dim nombre As String = txtNombre.Text - Convertimos a mayúsculas y lo escribimos en txtMayus
txtMayus.Text = nombre.ToUpper() - Convertimos a minúsculas y lo escribimos en txtMinus
txtMinus.Text = nombre.TuLower() - Contamos los caracteres en el nombre y escribimos la cantidad en txtCaracteres
txtCaracteres.Text = nombre.Length()

¿Y si el usuario no escribió algo al momento de dar clic? Recordemos que esto se ejecutara solo si no hay una cadena vacía en txtNombre (txtNombre.Text <> “”), podríamos implementar un mensaje para el caso que no haya ingresado:
Otra manera de manejar la condicional es con el propio “Lenght()”, pero aún así tendríamos un problema, por ejemplo, ejecute e ingrese un espacio en blanco.
Como los espacio también son caracteres se inician las sentencias, para controlar también esto podríamos implementar “Trim” que elimina esos espacios en blanco al inicio y final de la cadena y luego contamos con “Lenght()”:

Limpiar los Datos
Ahora doble clic sobre el ítem MenuItem3 (Limpiar) del mainMenu1, lamentablemente no tenemos el método “Clear()” de las aplicaciones de escritorio, así que para cada TextBox debemos asignarle una cadena vacía (recordemos que no es lo mismo “” que “ “, la segunda tiene un caracter espacio en blanco):Haciendo un poco de memoria, en la implementación anterior se muestra el MessageBox cuando el usuario ingresó una cadena de uno o más espacios en blanco (ya no es una cadena vacía), cuando cierre el MessageBox los espacios en blanco seguirán allí, sería una buena idea borrarla.
Select Case
Al igual que el uso de “Elseif” nos permitirá realizar varias comparaciones con datos de tipo booleano, numérico, cadenas, fecha/hora y objetos, ejecutará el bloque de sentencias en donde la comparación devuelva “true”. Su estructura o sintaxis es:Select Case dato_a_evaluar
Case valor_comparado1
sentencias_si_valor_comparado1_verdadero Case valor_comparado2
sentencias_si_valor_comparado2_verdadero Case valor_comparado3
sentencias_si_valor_comparado3_verdadero Case Else
sentencias_si_todas_falsas
End Select
En donde dato_a_evaluar es el dato que vamos a ir comparando su igualdad con otros valores (habitualmente es una variable), de esa comparación se obtiene “true” o “false”. El valor_comparado1 es el valor contra el que se compara dato_a_evaluar, si devuelve verdadero se ejecutarán las sentencias_si_valor_comparado1_verdadero, si devuelve falso se pasa a la siguiente comparación hasta hallar la primera que sea verdadera. ¿Y si ninguna es verdadera? entonces se ejecutarán las sentencias_si_todas_falsas (el bloque con Else es opcional).
Agregamos un nuevo formulario, menú: Proyecto > Agregar WindowsForm…
dejamos con el nombre por defecto
Name | Text | |
Form2 | Ejercicio 2 | |
Label1 | Su edad | |
TextBox1 | txtEdad |
- 0 años: Recién nacido
- De 1 a 11 años: Niñez
- De 12 a 17 años: Adolescencia
- De 18 a 29 años: Juventud
- De 30 a 59 años: Adultez
- 60 o más: Adulto mayor
- Verificar que haya ingresado un valor en el TextBox
If txtEdad.Text.Trim.Lenght() Then - Obtener la edad
Dim edad As Integer = Integer.Parse(txtEdad.Text) - Iniciamos Select Case para evaluar la variable edad
Select Case edad - Iniciamos las comparaciones y los mensajes respectivos en caso devolviera “true”.
- Preparamos el mensaje para el caso de que todos ninguno devuelva verdadero.
- Finalizamos el Select y mostramos el resultado.

Para Cargar Form2
Al iniciar la aplicación se seguirá cargando el Form1, tenemos dos opciones para cargar el Form2.Para establecer el Form2 como formulario inicial, en el explorador de soluciones (a la derecha y arriba) clic derecho sobre el proyecto “Semana02” (o el nombre que le hayas puesto, aparece en negrita), clic en la opción “Propiedades”, en la ventana que se muestra busca “Objeto de inicio” y selecciona Form2 de la lista y ejecuta:
La otra opción es implementar el “salto” de Form1 al Form2. Ve a la vista de diseño del Form1, en el mainMenu1 de este formulario agrega un ítem con el texto “Ir a Form2”, luego das doble clic sobre ese ítem (MenuItem4) e implementas:
Y es todo por esta clase, no duden en enviar sus preguntas, observaciones o comentarios ¡Hasta la próxima semana!
No hay comentarios.:
Publicar un comentario
Tu comentario