¿Cómo asignar una acción a un botón?

Muy bien, en este punto ya sabes cómo crear, cambiar el color y la etiqueta de los botones. Ahora viene la parte en la que añadimos interacción a los botones asignándole una acción a realizar cuando son pulsados (o presionados).

Para realizar esto en YoProgramo vamos a usar la función: asignar_accion(objeto, accion); como en las funciones de asignación de color y etiqueta, el objeto es el nombre de una variable que hace referencia a un botón ya construido al cual queremos asignarle una acción. Al igual que en la etiqueta, la accion se escribe entre comillas sencillas (') y corresponde a la instrucción que se va a realizar al presionar el botón.

YoProgramo es un ambiente de programación sencillo y la función asignar_accion solo te permite asignar una acción al botón, lo bueno es que está acción puede ser la ejecución de una función con lo que se pueden realizar muchas acciones dentro del código de la función, por otra parte si la acción es más simple como la asignación de un valor a una variable, se puede realizar directamente.

Ejemplo interactivo

En el siguiente programa puedes observar un conjunto de botones con números, cuyas acciones asignadas son cambiar la etiqueta del botón blanco, con el número del botón presionado. Juega con los botones e intenta agregar otro tipo de acciones.

Notas

Quizá durante tus pruebas intentaste cambiar la etiqueta de un botón dentro de una acción, pero en lugar de ponerle un número como en el ejemplo, intentaste poner una palabra, como Hola, si lo hiciste y no le pusiste comillas sencillas alrededor de la palabra (por ejemplo: asignar_accion(btn1,'asignar_etiqueta(btn, Hola)');) habrás notado que el valor de la etiqueta se vuelve cero, esto se debe a que la función asignar_etiqueta espera en su segundo parámetro un valor ya sea numérico, de cadena de texto o el nombre de una variable, en este caso está recibiendo Hola lo que interpreta como una variable que de hecho no esta definida y por eso le asigna el valor de 0.

Ahora, si le agregaste las comillas a la palabra Hola (por ejemplo: asignar_accion(btn1, 'asignar_etiqueta(btn, 'Hola')');) entonces habrás notado un comportamiento diferente, en este caso el botón no hace nada cuando se pulsa sobre él, esto se debe a que la cadena de texto queda incompleta. El error viene en el valor del segundo argumento de la función, es decir en la parte: 'asignar_etiqueta(btn,'Hola')'; ya que todo lo que esta entre comillas es una cadena 'asignar_etiqueta(btn,' pero luego sigue la palabra Hola que no esta ente comillas y por ultimo viene la cadena ')', con lo cual el programa no sabe lo que realmente quieres hacer y por esto no funciona.

La forma en la que puede asignarle una etiqueta a un botón dentro de una acción es primero definir una variable que tenga el valor de la etiqueta, por ejemplo, saludo:='Hola'; y luego asignarle al botón la acción asignar_accion(btn1, 'asignar_etiqueta(btn, saludo)'); con esto podemos asignar mensajes a botones desde la acción de otros botones.

Muy bien, si revisaste todos los bloques informativos correspondientes a los botones, ya sabes lo suficiente sobre botones para realizar la mayoría de las actividades de YoProgramo del taller.