Los Botones bajo el Control de Programas

Los botones ejecutan las instrucciones de una manera muy transparente: la instrucción se ve dentro del botón. Botónuevo crea un nuevo botón. Como es usual, el nombre no puede ser una palabra del Vocabulario MicroMundos. La segunda entrada es la posición (las coordenadas x e y del borde superior izquierdo); la tercera entrada es la instrucción del botón. Los botones que se crean con botónnuevo se establecen automáticamente en Una vez.

botónnuevo "mibotón [90 90] [fd 50]

Normalmente el nombre de un botón no es importante. Si se crea un botón mediante la herramienta Botón, MicroMundos le dará un nombre preestablecido (por ej., botón1) que no se puede cambiar. El nombre del botón cobra importancia cuando se quieren rastrear los botones creados y los procesos en ejecución. En estos casos es muy útil la primitiva botónnuevo.

Los botones no se pueden esconder: están siempre visibles y muestran su instrucción

La posición, el tamaño, el estado y la instrucción de un botón se pueden establecer en forma individual. Cuando se crea un botón bajo el control de un programa, se deben usar en la instrucción los mandos lanza o porsiempre, que corresponden a Una vez y Muchas veces.

Cada botón tiene un estado "activa?", que puede ser cierto o falso. El estado activa? es cierto si se ha hecho clic en el ratón y la instrucción se está ejecutando. El proceso ha sido lanzado. Cuando la acción termina, el estado se vuelve falso. Se pueden ejecutar instrucciones desde un botón en otra página del proyecto, controlando su estado mediante fija.

El siguiente es un listados de todas las posibilidades:

Instrucciones

Equivale a/ Definiciones

fija "botón1 "pos [0 0] Fija la posición del botón.
fija "botón1 "tamaño [100 100] Fija el tamaño del botón.
fija "botón1 "regla [lanza [ad 1]] Fija la instrucción del botón en Una vez.
fija "botón1 "regla [porsiempre [ad 1]] Fija la instrucción del botón en Muchas veces.
fija "botón1 "activa? "cierto Activa el botón.
fija "botón1 "congelado? "cierto congela "botón1
fija "botón1 "congelado? "falso descongela "botón1

El mando correspondiente obtiene reporta el estado del botón:

Expresión

Definición

obtiene "botón1 "pos Reporta la posición del botón.
obtiene "botón1 "tamaño Reporta el tamaño del botón.
obtiene "botón1 "regla Reporta la instrucción del botón.
obtiene "botón1 "activa? Reporta si el botón está activo.
obtiene "botón1 "congelado? Reporta si el botón está congelado.

Se pueden usar las instrucciones fija y obtiene para hacer que los botones tengan el mismo tamaño. Por ejemplo:

Supongamos que hay dos botones, Botón1 y Botón2, con las instrucciones Pregunta1 y Pregunta2 respectivamente. Para hacer que los dos botones tengan el mismo tamaño, establezca que el tamaño del Botón2 sea el del primero.

fija "botón2 "tamaño obtiene "botón1 "tamaño

(Nota: se puede establecer el tamaño de un botón directamente en el menú desplegable del área de Proyecto).

El ejemplo siguiente muestra muy bien cómo se puede cambiar la regla de un botón. Vamos a armar un rompecabezas en el que cada tortuga es una pieza. Bajo el control de un programa, podemos hacer oscilar la instrucción del botón entre mezclar y empezar.

para mezclar
todas [muevan]
fija "botón1 "regla [lanza [empezar]]
fin

para muevan
frumbo azar 360 ad azar 2000
fin

para empezar
todas [fpos posinicial]
fija "botón1 "regla [lanza [mezclar]]
fin

Cuando se presiona el botón, mezclar cambia la instrucción del botón por la de empezar, mediante la siguiente instrucción:

fija "botón1 "regla [lanza [empezar]]

De la misma manera, empezar, cuando ejecuta su instrucción, cambia de nuevo la instrucción del botón por la de mezclar.