Práctica 2

Buenas,

Hoy vamos a proponer la realización de una aplicación con los conceptos ya vistos y algunos otros nuevos.

  • La aplicación constará de un "TextBox" donde se introducirá un número, y 5 botones que nos darán un resultado según le indiquemos.
  • Ejemplo:

    • Botón "Lista": Nos devolverá una lista del número indicado de forma secuencial.
    • Botón "Suma": Nos devolverá la suma del número de forma secuencial.
    • Botón "Pares": Nos devolverá solo los números pares.
    • Botón "D/6": Nos devolverá los números divisibles entre 6.
    • Botón "Factorial": Nos devolverá el factorial del número indicado.

  • También tendrá un "Label" que nos mostrará el resultado en pantalla, y por último un Botón para "Reiniciar" y otro para "Salir".
Para la realización de este ejercicio vamos a ver tres bloques nuevos.
  • Variable: Una variable es un espacio en memoria el cual nos brinda la posibilidad de guardar un resultado que posteriormente usaremos, como si habláramos de un cajón, el cual le vamos introduciendo paquetes y que vamos usando y sustituyendo unos por otros.

    • ¿Dónde está?: Built-in, Definition, Variable.
    • ¿Cómo se usa?: Una vez has sacado la variable nos vamos a My Blocks, My Definitions, en este apartado nos aparecerá 2 controles nuevos:
      • 1: Set Global variable, nos recoge el dato que le indiquemos y lo manda a la variable.
      • 2: Global variable, nos muestra el resultado donde le indiquemos.
  • While: Es un control el cual nos permite realizar un test tantas veces como nos sea necesario hasta llegar a cumplir el requisito indicado.

    • ¿Dónde está?: Built-in, Control, While.
    • ¿Cómo se usa?: En el apartado "test" le indicamos que debe cumplir, y en "do" que hacer.
  • Procedure: Es un objeto en el cual introduciremos una serie de sentencias a ejecutar, y que mandaremos a ejecutar con una única pieza. Es muy útil en el caso que tengas que repetir varias sentencias en una aplicación, para evitar que en el caso de error o modificación haya que andar modificando todo las sentencias de la aplicación, se introduciría este objeto en la que estarían las sentencias a ejecutar.

    • ¿Dónde está?: Built-in, Definition, Procedure.
    • ¿Cómo se usa?:  Una vez sacado el elemento nos vamos a My Blocks, My Definitions, en este apartado nos aparecerá 1 control nuevo:
      • 1: call Procedure, será la pieza que se introduzca en el botón

Pasamos a ver como sería la parte visual de nuestra aplicación:


 
La parte interna de la aplicación debería quedar algo así:
 








 
El resultado final de nuestra aplicación tendrá un aspecto similar al siguiente:
 
 
Espero que os animéis a realizarla, comenten cualquier duda y opinión.

Saludos.
 

Práctica 1

Buenas,

Hoy vamos a proponer la realización de una aplicación con los conceptos ya explicados anteriormente.
 
Realizar aplicación que:
  • Nos muestre un panel:
    • Nombre:  Introduce nombre (TextBox)
    • Estudio: Listado Estudios (Es una lista con los valores iniciales, ciclo, bachillerato y superior).
    • Botón. Dicho panel tendrá un botón (Entrar) el cual actuará de dos posibles maneras:
      • Si hemos seleccionado "ciclo",
        • Nos mostrará un panel en el cual nos aparecerá la frase "hola" y el "nombre" (nombre introducido anteriormente), un cajetín para la edad, y dos botones;
          • “Mayor” que si lo pulsamos nos dirá si somos mayor de edad o menores de edad.
          • “Faltan” que nos dirá, si somos menores de edad, cuantos años nos queda para cumplir los 18 años.   
      • Si hemos dicho "bachillerato" o "superior",
        • Nos mostrará otro panel que contendrá un listado de institutos por ciudad, que según seleccionemos nos mostrará una imagen de dicho centro.

NOTA: Recordar ocultar los "Screen Arrangement", "pv_ciclo" y "pv_otros", para mostrarlos mediante el botón "Entrar".

La parte gráfica de la aplicación deberá quedar algo así:


NOTA: Recordar subir las imágenes de los institutos.


La configuración interna de la aplicación debería quedar algo así:

 




 
La aplicación final tendrá el siguiente aspecto.


Espero que os animéis a realizarla, comenten cualquier duda y opinión.

Saludos.
 

 

Utilización de Textos, Operaciones de Listas y el Control Image

Buenas,

Hoy vamos a aprender a utilizar "Textos, Operaciones de Listas y el Control Image".

Para ello vamos a crear una aplicación que tendrá estas características:

La aplicación consistirá en introducir:
  • Nombre Completo (Nombre y 2 Apellidos)
  • Edad (campo de texto que sólo admite números), y tiene que controlarse que sea entre 0 y 200.
  • Equipo (seleccionar uno de la lista del ListPicker, entre Malaga, Barcelona, Madrid y Sevilla)
La aplicación nos devolverá:
  • Nombre, Apellido 1 y Apellido 2: que será el resultado de dividir (split) el Nombre Completo. En estas cajas de texto no se podrá escribir nada.
  • Escudo: que será una imagen que se cargará según el Equipo seleccionado. Hay que hacerlo de forma que al seleccionar el equipo, con el nombre que nos aparece en la lista, forme el nombre del fichero, acabado en .png. Por ejemplo, si seleccionamos Malaga, nos mostrará la imagen Malaga.png; si Barcelona, Barcelona.png, … (habrá que concatenar al nombre de la selección de ListPicker la terminación .png)
  • Resultado: Cuando pulsemos sobre el botón “Mostrar y Escuchar Mensaje”, nos debe mostrar un mensaje como el siguiente:
Don/a "Apellido1" "Apellido2" "Nombre" le faltan "X" años para cumplir los 50, y usted es del equipo del "Equipo"

En el caso de que la edad sea superior a 50 años nos saldrá:

Don/a "Apellido1" "Apellido2" "Nombre" se a pasado "X" años más de los 50, y usted es del equipo del "Equipo"

Comenzamos por crear la parte gráfica de la aplicación, la cual quedará algo así:


 
Importante: Recordar subir las imágenes a la aplicación, y con el nombre adecuado, como se muestra a continuación. También recordar integrar un "Other Stuff", "TextToSpeech", el cual nos cantará el resultado una vez pulsado el botón "Mostrar y Escuchar Mensaje".
 

 
 
 

Una vez acabado la parte gráfica de la aplicación, pasamos a configurar el comportamiento de la misma.
  • Para empezar vamos a indicarle a la aplicación que debe hacer cuando se inicie.
  • Para ello vamos a "My Blocks", "Screen1" y sacamos "Screen1.Initialize", donde indicaremos que debe hacer cuando inicie.
  • Luego añadiremos los elementos que contendrá nuestra lista de equipos. Nos vamos a "My Blocks", "lst_equipo" y sacamos "lst_equipo.Elements" y le añadiremos el listado que incluirá. Para ello nos vamos a "Built-In", "lists" y sacamos "make a list" luego nos vamos a Built-In", "Text" y sacamos 4 "text", los renombraremos con "Madrid", "Barcelona", "Malaga" y "Sevilla".
El resultado final será el siguiente:


Continuamos con el apartado del nombre, donde dividiremos el nombre completo por espacios y los colocaremos en sus respectivos recuadros.
  • Para ello nos vamos a "My Blocks", "txt_nombre_completo" y sacamos "txt_nombre_completo.LostFocus", dentro indicaremos las funciones que hará al soltar el foco.
  • Ahora vamos a indicarle que debe hacer si el campo "nombre" no contiene datos. Nos vamos a  "Built-In", "Control" y sacamos "ifelse". A continuación nos vamos a  "Built-In", "Text" y sacamos "is text empty?", y por último nos vamos a  "My Blocks", "txt_nombre_completo" y sacamos "txt_nombre_completo.Text", con esto ya tendremos la condición a cumplir.
  • Vamos a indicarle que hacer si cumple la condición, nos vamos a  "My Blocks", "txt_nombre_completo" y sacamos "txt_nombre_complero.Hint", nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto "Introduce tu nombre".
  • Ahora vamos a añadirle el valor falso. En este caso vamos a añadir una variable la cual recogerá nuestro nombre, el cual se dividirá en líneas separadas por los espacios, de donde luego iremos sacando los nombres para añadirlos a su correspondiente campo.
  • Para crear la variable nos vamos a "Built-In", "Definition" y sacamos "Variable", y la renombraremos con "lst_nombre", luego nos vamos a "Built-In", "List" y sacamos "Make a list", con esto ya tendremos nuestra variable lista.
  • Pasamos a agregar la condición false, para que nuestra variable contenga los datos ya divididos nos vamos a "My Blocks", "Definitions" y sacamos "set global lst_nombre", seguidamente nos vamos a  "Built-In", "Text" y sacamos "split at spaces", y por último a "My Blocks", "txt_nombre_completo" y sacamos "txt_nombre_completo.Text".
  • Ahora vamos a asignarle parte del nombre a cada campo, empezaremos por el campo "nombre", nos vamos a "My Blocks", "txt_nombre" y sacamos "txt_nombre.Text", seguido nos vamos a "Built-In", "List" y sacamos "select list ítem" dentro de "list" introducimos la lista donde buscar, para ello vamos a "My Blocks", "Definitions" y sacamos "lst_nombre", y en index introducimos que parte de la lista queremos coger, en nuestro caso el "1" que sería la primera fila, nos vamos a "Built-In", "Math" y sacamos "number", le introducimos el número "1".
  • Repetimos estos pasos tanto con "apellido 1" como con "apellido 2" cambiando donde se recogen los datos y que parte de la lista coger.
El resultado final será el siguiente:

 
Pasamos a configurar el apartado de edad, donde indicaremos como debe comportarse al perder el foco.
  • Para ello nos vamos a "My Blocks", "txt_edad" y sacamos "txt_edad.LostFocus", dentro indicaremos las funciones que hará al soltar el foco.
  • Vamos a agregarle un "ifelse" que controlará que pasa si soltamos el foco sin escribir nada. Nos vamos a "Built-In", "Control" y sacamos "ifelse". Ahora nos vamos a  "Built-In", "Text" y sacamos "is text empty?", y por último nos vamos a  "My Blocks", "txt_edad" y sacamos "txt_edad.Text", con esto ya tendremos la condición a cumplir.
  • Pasamos a indicarle que hacer si cumple la condición verdadera, nos vamos a  "My Blocks", "txt_edad" y sacamos "txt_edad.Hint", nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto "Introduce edad".
  • Pasamos a indicarle que hacer en el caso de que no cumpla la condición. Vamos a introducirle un "if", para ello nos vamos a "Built-In", "Control" y sacamos "if", seguido nos vamos a "Built-In", "Logic" y sacamos "or". Dentro vamos a indicar si debe cumplir una u otra condición, nos vamos a "Built-In", "Math" y sacamos ">", en el espacio izquierdo agregamos la edad, para ello nos vamos a "My Blocks", "txt_edad" y sacamos "txt_edad.Text", y en el espacio derecho agregamos el número "200", nos vamos a "Built-In", "Math" y sacamos "number", le introducimos el número "200". Para la siguiente condición nos vamos a "Built-In", "Math" y sacamos "<", en el espacio izquierdo agregamos la edad, para ello nos vamos a "My Blocks", "txt_edad" y sacamos "txt_edad.Text", y en el espacio derecho agregamos el número "0", nos vamos a "Built-In", "Math" y sacamos "number", le introducimos el número "0".
  • Si cumple alguna de las dos condiciones nos pondrá el campo de edad "vacío" y nos dirá "Número no válido", para ello nos vamos a "My Blocks", "txt_edad" y sacamos "txt_edad.Text", luego nos vamos a "Built-In", "Text" y sacamos "text", y le borramos el texto, lo cual nos quedará un espacio vacío " ".
  • Luego nos vamos a "My Blocks", "txt_edad" y sacamos "txt_edad.Hint", nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto "Número no válido".
El resultado final será el siguiente:
 
 
 
Ahora vamos a configurar el listado de equipos para indicarle que hacer cuando seleccionemos el equipo.
  • Nos vamos a "My Blocks", "lst_equipo" y sacamos "lst_equipo.AfterPincking", dentro indicaremos las funciones.
  • Para ello nos vamos a "My Blocks", "lst_equipo" y sacamos "lst_equipo.txt" al cual le agregaremos que nos ponga como texto lo que seleccionemos en el listado, nos vamos a "My Blocks", "lst_equipo" y sacamos "lst_equipo.Selection".  
  • Hecho todo esto, vamos a indicarle que cuando seleccionemos un equipo nos muestre su escudo, nos vamos a "My Blocks", "img_imagen_escudo" y sacamos "img_imagen_escudo.Picture", en ella cargaremos las imágenes correspondientes, nos vamos a "Built-In", "Text" y sacamos "make text", dentro uniremos el nombre seleccionado con la extensión ".png", para así cargar nuestra imagen, nos vamos a "My Blocks", "lst_equipo" y sacamos "lst_equipo.Text", y luego nos vamos a   "Built-In", "Text" y sacamos "text", le añadimos como texto ".png".

El resultado final será el siguiente:
 
 
Continuamos con el botón que nos mostrará y cantará el resultado.
  • A este botón le vamos a agregar una condición de edad, si tiene menos de "50" años nos mostrará un mensaje y si tiene más nos mostrará otro.
  • Para comenzar nos vamos a "My Blocks", "btn_mostrar" y sacamos "btn_mostrar.Click", dentro indicaremos las funciones que hará al presionar click en el botón.
  • Luego nos vamos a "Built-In", "Control" y sacamos "ifelse".
  • Pasamos a agregar la condición a cumplir, nos vamos a  "Built-In", "Math" y sacamos "<", en el espacio izquierdo agregamos la edad, para ello nos vamos a "My Blocks", "txt_edad" y sacamos "txt_edad.Text", y en el espacio derecho agregamos el número "50", nos vamos a "Built-In", "Math" y sacamos "number", le introducimos el número "50".
  • Pasamos a agregar que hará si cumple la condición, nos vamos a "My Blocks", "lbl_resultado" y sacamos "lbl_resultado.Text", luego nos vamos a "Built-In", "Text" y sacamos "make text", y por último le vamos añadiendo las partes del texto (Se dejará a elección, en la foto final se verá un modelo de referencia).
  • Pasamos a configurar que hará la aplicación en el caso de que no cumpla la condición, nos vamos a "My Blocks", "lbl_resultado" y sacamos "lbl_resultado.Text", luego nos vamos a "Built-In", "Text" y sacamos "make text", y por último le vamos añadiendo las partes del texto (Se dejará a elección, en la foto final se verá un modelo de referencia).
  • Ahora vamos a configurar el apartado del audio, donde nos cantará el resultado, nos vamos a "My Blocks", "TextToSpeech1" y sacamos "TextToSpeech1.Language", luego nos vamos a "Built-In", "Text" y sacamos "text", y le ponemos de texto "Español", con esto le hemos indicado que nuestro lenguaje es "español".
  • Seguido nos vamos a "My Blocks", "TextToSpeech1" y sacamos "TextToSpeech1.Country", luego nos vamos a "Built-In", "Text" y sacamos "text", y le ponemos de texto "ESP", con esto le hemos indicado que somos de "España".
  • Pasamos a indicarle que debe cantar, nos vamos a "My Blocks", "TextToSpeech1" y sacamos "TextToSpeech1.Speak", y luego nos vamos a "My Blocks", "lbl_resultado" y sacamos "lbl_resultado.Text".
El resultado final será el siguiente:


 
Por último en la aplicación, le vamos a añadir un "botón" para salir de la aplicación.
  • Nos vamos a "My Blocks", "btn_salir" y sacamos "btn_salir.Click", dentro indicaremos la función para salir de la aplicación.
  • Nos vamos a  "My Blocks", "Control" y sacamos "close application".
El resultado final será el siguiente:
 
 
El resultado final de nuestra aplicación debería quedar algo así:
 
 
Espero que os sea de utilidad, comenten cualquier duda y opinión.
 
Saludos.
 

Utilización de Label, TextBox, Botones, Listas, Paneles y sentencias IF.

Buenas,

Hoy vamos a aprender a utilizar Label, TextBox, Botones, Listas, Paneles y sentencias IF.

Nos basaremos en una aplicación donde según nuestro usuario, haremos una determinada tarea.

La aplicación se divide en 2 Paneles (Arrangment), uno para añadir usuarios (ph_admin) y otro para realizar operaciones (pv_otros), que se cargará (visualizará) uno u otro dependiendo del usuario seleccionado en Lista de Usuarios (que inicialmente estará compuesta por "Admin" y "Usuario").
  • Si el usuario seleccionado es "Admin", nos mostrará el panel "ph_admin" (el otro quedará invisible) que nos permitirá añadir un nuevo usuario a la Lista de Usuarios. Dicha lista tendrá que aparecer actualizada la próxima vez que se clickee en ella.
  • Si el usuario seleccionado es distinto a "Admin", nos mostrará el panel "pv_otros" (el "ph_admin" quedará invisible) que nos pedirá 2 números y nos devolverá el mayor o la suma o la media, según se seleccione. Concretamente, nos debe mostrar una frase, en el control "lbl_resultado", como la siguiente:
"NombreUsuario", el/la "FuncionSeleccionada" es "Resultado".
Donde:
  • NombreUsuario: Es el nombre que hemos seleccionado en el "ListPicker".
  • FuncionSeleccionada: Será mayor, suma o media según el botón seleccionado.
  • Resultado: Será el número resultante de la operación seleccionada.
También le incluiremos un "Botón" para salir de la aplicación.

Comenzamos por crear la parte gráfica de la aplicación.

Seleccionamos "Screen1" y marcamos "AlignHorizontal", "Right", para mantener todo alineado a la derecha, con ello lograremos que el "botón final" para salir quede perfectamente alineado a la derecha.
Todos los "ScreenArrangement" que vayamos introduciendo le iremos indicando que centre el contenido, "AlignHorizontal", "Center", y que ocupe todo el espacio de pantalla, "Width", "Fill parent".

Pasamos a utilizar los siguientes componentes y en el siguiente orden:


El componente "pv_espacio" es un "ScreenArrangement Vertical" con un "Height" de "20 pixels", con ello lograremos separar el botón final en una cantidad de "20 pixels".

El resultado final será el siguiente:



Una vez hecho todo esto, pasamos a crear la estructura de la aplicación, donde explicaremos como funcionan todos los componentes introducidos y como interactúan entre ellos.
  • Para empezar vamos a indicarle a la aplicación que debe hacer cuando se inicie.
  • Para ello vamos a "My Blocks", "Screen1" y sacamos "Screen2.Initialize", donde indicaremos que debe hacer cuando inicie.
  • Para ello vamos a "My Blocks", "ph_admin" y sacamos "ph_admin.Visible" al cual le introduciremos el valor "False". Ahora nos vamos a "My Blocks", "pv_otros" y sacamos "pv_otros.Visible" también le introduciremos el valor "False". con esto indicaremos que los dos "ScreenArrangement" inicien ocultos.
  • Por último añadiremos los elementos que contendrá nuestra lista de usuarios. Nos vamos a "My Blocks", "lst_usuarios" y sacamos "lst_usuarios.Elements" y le añadiremos el listado que incluirá, nos vamos a "Built-In", "lists" y sacamos "make a list" luego nos vamos a Built-In", "Text" y sacamos 2 "text", en uno pondremos "Admin" y en el otro "Usuario".
 
 
Ahora vamos a agregar la función al listado, qué hará cuando pulsemos y después de seleccionar el usuario de la lista.
  • Nos vamos a "My Blocks", "lst_usuarios" y sacamos "lst_usuarios.AfterPincking", dentro indicaremos las funciones.
  • Para ello nos vamos a "My Blocks", "lst_usuarios" y sacamos "lst_usuarios.txt" al cual le agregaremos que nos ponga como texto lo que seleccionemos en el listado, nos vamos a "My Blocks", "lst_usuarios" y sacamos "lst_usuarios.Selection".
  • Ahora pasamos a indicarle la condición a seguir, nos vamos a "My Blocks", "Control" y sacamos "ifelse" donde introduciremos las condiciones.
  • Vamos a indicarle que condición mirar. Nos vamos a "Built-In", "Math" y sacamos "=", lo introducimos en "test", ahora nos vamos a "Built-In", "lists" y sacamos "lst_usuarios.Selection" y lo introducimos en el primer espacio, luego nos vamos a "Built-In", "Text" y sacamos "text", al cual le añadiremos como nombre "Admin" y lo introduciremos en el segundo espacio, con esto le indicaremos que si seleccionamos "Admin" nos haga una función, que será:
    • Nos mostrará el apartado para introducir usuarios.
    • Nos ocultará la calculadora.
  • Nos vamos a "My Blocks", "ph_admin" y sacamos "ph_admin.Visible" al cual le introduciremos el valor "True", ahora nos vamos a "My Blocks", "pv_otros" y sacamos "pv_otros.Visible" al cual le introduciremos el valor "False", los introducimos en "then-do".
  • Pasamos a introducir que hará si no cumple la condición, nos vamos a "My Blocks", "ph_admin" y sacamos "ph_admin.Visible" al cual le introduciremos el valor "False", ahora nos vamos a "My Blocks", "pv_otros" y sacamos "pv_otros.Visible" al cual le introduciremos el valor "True", los introducimos en "else-do".
El resultado final será el siguiente:
 
 
Pasamos a configurar el botón para añadir usuarios, y las condiciones que debe cumplir.
  • Para ello nos vamos a "My Blocks", "btn_añadir" y sacamos "btn_añadir.Click", dentro indicaremos las funciones que hará al presionar click en el botón.
  • Pasamos a introducir un control "ifelse" que tendrá unas condiciones en su interior. Para ello nos vamos a "My Blocks", "Control" y sacamos "ifelse"
  • Ahora vamos a introducirle la condición que llevará, nos vamos a  "Built-In", "Text" y sacamos "is text empty?", que mirará si no tiene texto, vamos a indicarle donde buscar, para ellos nos vamos a "My Blocks", "txt_introduce_usuario" y sacamos "txt_introduce_usuario.Text".
  • Ahora vamos a indicarle que hacer si cumple la condición, nos vamos a "My Blocks", "txt_introduce_usuario" y sacamos "txt_introduce_usuario.Hint" y le añadimos el texto a mostrar, nos vamos a Built-In", "Text" y sacamos 2 "text", y le ponemos como texto "Introduce Usuario". Con esto indicaremos que si cumple la condición nos muestre el mensaje indicado.
  • Ahora pasamos a ponerle que hacer en el caso de que no cumpla la condición. Para ello nos vamos a "Built-In", "lists" y sacamos "add ítems to list".
    • Le añadimos en list: "My Blocks", "lst_usuarios y sacamos "lst_usuarios.Elements"
    • Y en ítem: "My Blocks", "txt_introduce_usuario" y sacamos "txt_introduce_usuario.Text". Con esto nos añadirá el usuario a nuestra lista.
  • Ahora le añadiremos un texto que nos indicará que se ha añadido el usuario y limpiaremos el cuadro de texto para continuar añadiendo usuarios.
  • Nos vamos a "My Blocks", "txt_introduce_usuario" y sacamos "txt_introduce_usuario.Hint", nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto "Usuario Añadido".
  • Ahora nos vamos a "My Blocks", "txt_introduce_usuario" y sacamos "txt_introduce_usuario.Text", nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto un espacio vacío " ".
 
El resultado final será el siguiente:
 
 
Pasamos a configurar los botones "mayor, suma, media y limpiar" que nos realizará el cálculo indicado, o en su caso nos limpiará todo para empezar de cero.
 
Mayor:
  • Nos vamos a "My Blocks", "btn_mayor" y sacamos "btn_mayor.Click", dentro indicaremos las funciones que hará al presionar click en el botón.
  • Al hacer click sobre el botón nos mostrará el resultado del cálculo con un mensaje, donde indicará el "nombre del usuario, la función realizada y el resultado de dicho cálculo".
  • Nos vamos a "My Blocks", "lbl_resultado" y sacamos "lbl_resultado.Text", luego nos vamos a "Built-In", "Text" y sacamos "make text", y por último le vamos añadiendo las partes del texto.
  • Nos vamos a "Built-In", "lists" y sacamos "lst_usuarios.Selection" y lo añadimos en el primer espacio, luego nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto ", el mayor es ", y lo introducimos en el segundo espacio, por último añadimos el resultado, para ello nos vamos a "Built-In", "Math" y sacamos "max", dentro introducimos los dos "txt" que contienen los números, nos vamos a "My Blocks", "txt_n1" y sacamos "txt_n1.Text", luego nos vamos a "My Blocks", "txt_n2" y sacamos "txt_n2.Text"
El resultado final será el siguiente:
 
 
Suma:
  • Nos vamos a "My Blocks", "btn_suma" y sacamos "btn_suma.Click", dentro indicaremos las funciones que hará al presionar click en el botón.
  • Al hacer click sobre el botón nos mostrará el resultado del cálculo con un mensaje, donde indicará el "nombre del usuario, la función realizada y el resultado de dicho cálculo".
  • Nos vamos a "My Blocks", "lbl_resultado" y sacamos "lbl_resultado.Text", luego nos vamos a "Built-In", "Text" y sacamos "make text", y por último le vamos añadiendo las partes del texto.
  • Nos vamos a "Built-In", "lists" y sacamos "lst_usuarios.Selection" y lo añadimos en el primer espacio, luego nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto ", la suma es ", y lo introducimos en el segundo espacio, por último añadimos el resultado, para ello nos vamos a "Built-In", "Math" y sacamos "+", dentro introducimos los dos "txt" que contienen los números, nos vamos a "My Blocks", "txt_n1" y sacamos "txt_n1.Text", luego nos vamos a "My Blocks", "txt_n2" y sacamos "txt_n2.Text"
El resultado final será el siguiente:
 
 
Media:
  • Nos vamos a "My Blocks", "btn_media" y sacamos "btn_media.Click", dentro indicaremos las funciones que hará al presionar click en el botón.
  • Al hacer click sobre el botón nos mostrará el resultado del cálculo con un mensaje, donde indicará el "nombre del usuario, la función realizada y el resultado de dicho cálculo".
  • Nos vamos a "My Blocks", "lbl_resultado" y sacamos "lbl_resultado.Text", luego nos vamos a "Built-In", "Text" y sacamos "make text", y por último le vamos añadiendo las partes del texto.
  • Nos vamos a "Built-In", "lists" y sacamos "lst_usuarios.Selection" y lo añadimos en el primer espacio, luego nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto ", la media es ", y lo introducimos en el segundo espacio, por último añadimos el resultado, para ello nos vamos a "Built-In", "Math" y sacamos "/", dentro del primer espacio introducimos, "Built-In", "Math" y sacamos "+", dentro introducimos los dos "txt" que contienen los números, nos vamos a "My Blocks", "txt_n1" y sacamos "txt_n1.Text", luego nos vamos a "My Blocks", "txt_n2" y sacamos "txt_n2.Text". En el segundo espacio del signo "/" introducimos, "Built-In", "Math" y sacamos "number", le introducimos el número "2".
El resultado final será el siguiente:
 
 
 
Limpiar:
  • Nos vamos a "My Blocks", "btn_limpiar" y sacamos "btn_limpiar.Click", dentro indicaremos las funciones que hará al presionar click en el botón.
  • Al hacer click sobre el botón nos limpiará los cuadros de texto "txt_n1.Text" y "txt_n2.Text", también el "lbl_resultado.Text".
  • Nos vamos a "My Blocks", "txt_n1" y sacamos "set txt_n1.Text", luego nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto un espacio vacío " ".
  • Después nos vamos a "My Blocks", "txt_n2" y sacamos "set txt_n2.Text", luego nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto un espacio vacío " ".
  • Por último nos vamos a "My Blocks", "lbl_resultado" y sacamos "lbl_resultado.Text", luego nos vamos a "Built-In", "Text" y sacamos "text", le añadimos como texto "Resultado".
El resultado final será el siguiente:
 
 
Por último en la aplicación, le vamos a añadir un "botón" para salir de la aplicación.
  • Nos vamos a "My Blocks", "btn_salir" y sacamos "btn_salir.Click", dentro indicaremos la función para salir de la aplicación.
  • Nos vamos a  "My Blocks", "Control" y sacamos "close application".
El resultado final será el siguiente:
 
 
El resultado final de nuestra aplicación debería quedar algo así:
 
Otro Usuario                                                  Admin
 

 
Espero que os sea de utilidad, comenten cualquier duda y opinión.
 
Saludos.