Cuando este programa es corrido crea por si mismo una caja de
chequeo en una ventana. Trate de operar la caja de chequeo y ver los eventos
que son generados. Usted obtiene unos eventos del tipo 'c' cuando una caja de
chequeo es chequeada o des-chequeada, y las banderas indican si estuvo chequeada
o des-chequeada (01 y 00).
Si usted quisiera la caja de chequeo inicialmente puede ser
chequeada, use el valor $04$ en la bandera (inicialmente chequeado) en la lista
de parámetros 'checkbox'. El que sigue es un ejemplo de como usted puede cambiar
la línea 40 para obtener una caja de chequeo que inicialmente esté chequeada
($04$), y también inicialmente desactivada ($01$).
0040 PRINT (1)'CHECKBOX'(101,10,10,50,15,"Chequear",$05$)
Mientras el programa está corriendo,
interrúmpalo (haga click en la ventana de la consola a enfocar, y luego oprima
Ctrl-C). Ahora vamos a interactuar con la caja de chequeo directamente.
0041 WAIT 1; PRINT (1)'DISABLE'(101)
0042 WAIT 1; PRINT (1)'ENABLE'(101)
Las declaraciones anteriores hacen que el
control se desactive, y active nuevamente. Usted va a ver el indicador de color
gris cuando es desactivado. En este momento esos mnemónicos ya le deberían ser
muy familiares.
0047 WAIT 1; PRINT (1)'CHECK'(101)
0048 WAIT 1; PRINT (1)'UNCHECK'(101)
Estos mnemónicos pueden ser usados en cualquier momento para
cambiar el estado de los controles chequeables (botón herramientas cambiable,
cajas de chequeo, botones de radio). Pueden también ser usados en ítems de menú
chequeables. Una lista de IDs puede ser provista en la lista de parámetros,
al igual que 'ENABLE'/'DISABLE' y 'SHOW'/'HIDE'.
0049 WAIT 1; PRINT (1)'TITLE'(101,"No chequear")
Como siempre, el mnemónico 'TITLE' puede ser utilizado para
cambiar un título de un control en cualquier momento. En el caso de una caja
de chequeo, el título es el texto de etiqueta mostrado a continuación de la
caja de chequeo.
Ahora vamos a experimentar con la función CTRL ( )
Antes de que pasemos a los Botones de Radio,
vamos a aprender a usar la función CTRL() para obtener el estado de una caja de chequeo. Utilizando
los mismos mnemónicos del programa que tenemos cargado en memoria asegurémonos
de que la caja de chequeo esté habilitada. Entonces digite:
PRINT DEC(CTRL(1,101,2))
Esto imprimirá ya sea un 0 o un 1, dependiendo
esto del estado actual de la caja de chequeo. Intente conmutación con el ratón,
y obtenga la función 2 de CTRL nuevamente para ver el cambio.
Recuerde que la función 2 de CTRL es "obtener valor".
La línea de arriba permite obtener el estado actual del botón, que normalmente
solamente nos puede interesar si el botón es cambiable.
Trate de usar la función 2 del
CTRL (como se muestra arriba) dos veces, intercambiando entre el botón y el
ratón.
También podrá ver que la función 2 nos sirve
para recuperar el título de un TOOL BUTTON, el cual, si lo que está exhibiendo
es un BITMAP, el texto del título es retornado como se estableció, con la sintaxis
del BITMAP=.
PRINT CTRL(1,101,1)
¡CUIDADO! En todos los casos, el valor por omisión para la función
CTRL es 2 ("obtener valor"), mientras que el valor por omisión para
la función CTRL para los botones de pulsar es 1 ("obtener texto").
Para practicar un poco más con el CTRL y
con los mnemónicos y funciones aprendidos en este capítulo, podemos escribir
el siguiente programa, el cual nos muestra un contexto en el que aparece un
botón para indicar OK, dos cajas para chequeo y dos campos para mostrar números.
Cada vez que sea oprimido el botón OK se inicia un ciclo del 1 al 10, en el
que van siendo mostrados los números pares o impares, según lo hayamos indicado
en los botones de chequeo.
0010 REM "Ejerc7a Opción de mostrar números pares/impares del 1 al 10 (1-1)
0020 BEGIN ; OPEN (1)"X0"
0030 PRINT (1)'SEMICHARS'
0040 PRINT (1)'WINDOW'(100,100,100,100,"Prueba con Controles",$03$,$FFFFFEFF$)
0050 PRINT (1)'CHECKBOX'(101,10,5,50,15,"Impares",$$); PRINT
(1)'CHECK'(101)
0060 PRINT (1)'CHECKBOX'(102,10,20,50,10,"Pares",$$)
0070 PRINT (1)'TEXT'(103,65,8,15,10,"- -
- -",$$); REM "Ponga guiones normales ...
|