Ejercicio de SYSGUI #1: Hola Mundo
Antes de foguearnos más abajo con algunos de los detalles del
dispositivo SYSGUI, vamos a intentar trabajar con un ejemplo. Este es un programa
clásico que seguiremos llamando "Hola, Mundo", con una interfase gráfica.
Una ventana aparecerá con el título "Hola". Contiene un botón único,
marcado "OK". La ventana desaparece después de que el usuario haga
click en la caja de cierre o en el botón "OK". Esto deberá ayudarnos
para introducir algunos de los conceptos y técnicas de SYSGUI de una forma manual,
y posteriormente podamos agregar otros detalles.
0010 OPEN (1)"X0"
0020 PRINT (1)'SEMICHARS'
0030 PRINT (1)'WINDOW'(50,50,50,50,"Hola",$83$); REM "El $83$
hace que
0030:tenga opción de esconderse=$80$, maximizarse=$01$ y cerrarse=$02$
0040 PRINT (1)'BUTTON'(1,5,15,40,0,"OK",$$); REM "Id, Col, Lin,
Anch,
0040: Alto, Título
0050 DIM EVENT$:TMPL(1)
0060 READ RECORD (1,SIZ=LEN(EVENT$))EVENT$
0070 END
Mecanografíe este programa y sálvelo como
Ejerc1. Intente correrlo con un SETTRACE.
¡SUGERENCIA! SETTRACE es más útil que siempre
para la depuración de programas GUI, desde la ventana de consola si no es utilizada
para cualquier otra cosa.
Intente correrlo paso por paso a través de
él. (Usted podría usar <Alt>+<Tab> para ver la ventana del GUI si
lo hace paso por paso). Note que la ventana puede ser cambiada de tamaño sin
que ninguna declaración de programa sea ejecutada. Todo eso es manejado por
el sistema del GUI. A menos que usted pregunte por reportes de eventos opcionales,
usted puede quedarse quieto y permitir al sistema del GUI hacer una gran cantidad
del trabajo!
Ahora vamos a comentar cada una de las líneas
de ese programa.
0010 OPEN (1)"X0"
Esto exactamente nos prepara el ambiente
para interactuar con el dispositivo de SYSGUI.
0020 PRINT (1)'SEMICHARS'
Esto establece la unidad de medida para la colocación de ventanas
y controles a una unidad llamada "semicaracteres". 'SEMICHARS' no
debe ser usado para colocar dibujos, solamente campos. Bajo la modalidad de
semicaracteres, normalmente una pantalla (completa) se compone de 400 por 300
semicaracteres.
¡CUIDADO! Por omisión las ventanas y controles son posicionados
en unidades de pixel, pero esto podría ser un problema debido a los tamaños
variables de fuentes del sistema en uso en diferentes máquinas. Por ejemplo,
si un botón fue hecho lo suficiente y justamente alto para acomodar el texto
"OK" en una máquina, podría resultar demasiado pequeño en otra máquina
donde una fuente más grande del sistema se tenga en uso.
En vista de que la fuente del sistema es una función del 'driver'
de despliegue, y además es establecida de acuerdo a la preferencia del usuario,
Visual PRO/5 no puede cambiar nada al respecto. Sin embargo, éste puede, ajustar
el tamaño y localización de todo objeto gráfico para compensar la diferencia
de las fuentes entre los distintos sistemas, y esto es exactamente al determinar
cuál unidad de "semicaracteres" es considerada.
Un semicaracter es definido como de un cuarto del ancho de un
caracter típico en la fuente del sistema actual y de un octavo la altura. Un
pixel siempre es igual a un punto en el despliegue, pero un "semichar"
podría ser igual a 2.4 pixeles a través y de 2.1 pixeles verticalmente, o alguna
otra combinación rara. El tamaño exacto de un semicaracter no es lo que es importante
(aunque es posible determinar esto en tiempo de corrida), pero el hecho es que
controles con texto (como el botón en nuestro ejemplo) pueden ser hechos para
mirarse bien en todos los despliegues.
El editor de recurso de BASIS soporta semicaracteres,
que hacen la unidad de fácil manejo. Para máxima portabilidad, la unidad de
semicaracteres debería ser utilizada en todas las ventanas donde existan controles
que contengan una línea única de texto (el cual podría ser truncado si la fuente
es larga). De toda manera, es aceptable y más conveniente, que utilizar pixeles.
0030 PRINT (1)'WINDOW'(50,50,50,50,"Hola',$83$)
El mnemónico 'WINDOW' es usado para crear ventanas gráficas.
Usted lo utilizará una y otra vez. Los primeros cuatro parámetros describen
la ubicación y tamaño de la ventana (xloc, yloc, ancho, altura). En este caso,
hemos situado la ventana a 50 semicaracteres de la esquina superior izquierda
a la vez en ambas coordenadas, y el tamaño de ventana de 50 por 50 semicaracteres.
Entiéndase bien, que las coordenadas se refieren a los semicaracteres de la
pantalla completa.
|