El siguiente parámetro es el título de ventana inicial. La ubicación,
tamaño y título pueden ser completamente cambiados en cualquier momento con
otros mnemónicos como 'SIZE' y 'TITLE'. El último parámetro requerido es un
string de banderas o condiciones. Este es un string binario que contiene la
suma de uno o más bits de bandera. Un séptimo parámetro puede opcionalmente
ser añadido, que es una máscara de evento, también en un string binario. La
máscara de evento puede ser usada para requerir informe de eventos opcionales.
¡CUIDADO! Los parámetros de máscara de banderas
y evento son de cuatro bytes (ocho dígitos hexadecimales) de largo. Si menos
bytes fueran especificados, los dígitos que falten serán asumidos a la izquierda
a como ocurre con el vector de SETOPTS. Una bandera puesta como $01$ se asumiría
como $00000001$. Es justamente un número.
El parámetro de banderas especificado aquí
tiene una combinación de tres banderas. Estas son:
$00000001$ ventana puede ser cambiada de tamaño por el usuario
$00000002$ ventana tiene una caja de cierre
$00000080$ ventana puede ser minimizada por el usuario
Trate de cambiar los parámetros de la bandera
por algunos de estos bits. (Valores buenos para el intento son $03$, $01$ y
$02$). ¡Usted tiene el control!
0040 PRINT (1)'BUTTON'(1,5,15,40,0,"OK",$$)
El mnemónico 'BUTTON' añade un control de botón a la ventana
actual. El primer parámetro es un ID (identificador) para el botón. El ID puede
ser un número cualquiera desde el 1 al 32767, aunque ID 1 es utilizado típicamente
para los botones OK. Los siguientes cuatro números son la ubicación (x, y) y
dimensiones (ancho, altura) del botón, en las unidades actuales de la ventana
previamente definida (semicaracteres).
Note la altura de cero. Algunos controles tienen un valor de
dimensión que se asume "por omisión". Los botones tienen un valor
de altura que se asume por omisión, que puede ser solicitado suministrando una
altura de 0. Usando dimensiones con valor que se asume por omisión puede ayudar
a que sus controles sean agradables para ser utilizados en otras aplicaciones.
En este caso, el botón será lo justamente alto como para acomodar el texto adecuadamente.
El sexto parámetro es el título. Este es
el texto que aparece dentro del botón. El último (séptimo) parámetro es un string
de banderas. En este caso, hemos suministrados un string vacío, el cual es equivalente
al número cero ($00000000$). Ninguna de las banderas opcionales queda establecida.
En este punto, la ventana y botón son mostrados,
y todo lo que continúa es para esperar a que el usuario tome alguna acción.
0050 DIM EVENT$:TMPL(1)
La nueva función TMPL() permite recuperar un string con la información que es
retornada por la función FIN(), y en algunos casos especiales (los canales SELECT
Y SYSGUI) pueden ser invocados sin el parámetro IND= para recuperar un TEMPLATE
o patrón para el registro de información mismo.
En este caso, estamos recuperando el TEMPLATE
o patrón para datos de evento, que pueden entonces ser leídos desde el canal
SYSGUI. Recordar que eventos son reportados debido a la interacción del usuario
con el sistema del GUI. No suministramos un parámetro de máscara de evento cuando
se crea la ventana, de modo que recibiremos solo el evento obligatorio (no opcional).
Afortunadamente, un botón que se presiona y una caja de cierre que se opera,
ambos son eventos obligatorios, de modo que son automáticamente reportados
0060 READ RECORD (1,SIZ=LEN(EVENT$))EVENT$
El programa esperará con este READ RECORD
hasta que un evento sea reportado o el programa sea interrumpido. Usted puede
interrumpir el programa haciendo click con el ratón en la ventana de la consola
(para establecer el foco de teclado a el) y luego oprimiendo <Ctrl >+C.
Cambiando de tamaño la ventana se genera un evento opcional pero ese no es pasado
por la máscara de eventos, de modo que las únicas acciones de usuario que hará
que el programa sea completado son el click en la caja de cierre o el click
en el botón OK.
|