Características
|
|
||
|
|
Requerimientos de hardware
Este programa funciona tanto en una G/GX como en una S/SX. Está probado en las versiones de ROM E y R y no hay razón para que no funcione con otras versiones de ROM. Yo no ofrezco ningún tipo de garantía por algún daño que este "free-ware" pueda ocasionar, así que si tenes dudas hace un backup de tu memoria, o no lo pruebes.
Tamaño y checksum
Archivo: facil.v4.1.48lib (Menú
Fácil)
Checksum: # 29666d
Bytes: 4945.5
Número de biblioteca: 1511
Archivo: ejemplo.48dir (ejemplo)
Checksum: # 48732dd
Bytes: 3244
Instalación
Para instalar Fácil hay que:
Para desinstalar Fácil:
Nota: Esta biblioteca no se acopla sola a HOME (hay que hacer 1511 ATTACH si se desea acoplar a algún directorio).
Descripción
Nota: El archivo ejemplo.48dir contiene ejemplos de como usar el programa (los que usé para probarlo mientras lo programaba) que muestran algunas de sus posibilidades.
1. Estructuras de datos
El programa requiere (desde versión 4.0) sólo un tipo de estructura de datos (lista). Los menues horizontales (barra) y verticales utilizan el siguiente formato:
{ { "título 1" << programa
1 >> }
{ "título 2" << programa 2 >>
}
.
.
.
{ "título n" << programa n >>
} } (llamemos
a esta estructura tipo A)
donde "título i" es lo que se muestra en pantalla, y << programa i >> es lo que se EVALúa al seleccionar el item marcado por "título i". Fácil utiliza los dos primeros items de cada sublista (que deben ser de la forma expuesta), si la sublista tiene más items estos son ignorados (puede ser útil incluir otros items en algunos casos).
El otro formato a mencionar es el del objeto de fondo. Este puede ser una lista con tres strings ( { "Linea 1" "Linea 2" "Linea 3" } ), uno para cada linea de descripción; o bien un GROB de 131x56.
2. Comandos
Fácil tiene seis comandos: BarF VertF ContF ExitF BackF FondoF. Los dos primeros se utilizan para ejecutar Fácil. Sus argumentos son:
3: objeto de fondo
2: lista tipo A
1: posición inicial del cursor (real entero y distinto de cero)
Nota: Pasando un entero negativo para la posición, el menú queda bloqueado (solo se puede salir de el si hay alguna opción prevista para ello).
BarF genera un menú horizontal, VertF uno vertical. Estos comandos también se utilizan desde los programas que componen la estructura de tipo A, solo que en ese caso toman solamente los dos primeros argumentos (lista tipo A y posición inicial).
El resto de los comandos: ContF ExitF BackF FondoF se utilizan desde los programas incluidos en la listas de tipo A. ContF toma un real (posición inicial) en el nivel 1 y vuelve al mismo menú. ExitF sirve para salir de Fácil y BackF vuelve al menú anterior si existe, si no existe no hace nada (se puede ejecutar más de una vez para volver a menues anteriores al anterior). Si un programa de la estructura de tipo A no incluye ninguno de estos tres comandos, luego de ser EVALuado se vuelve al mismo menú en la misma posición en la que se había entrado en la ocasión anterior. FondoF toma un objeto de fondo del nivel 1 y reemplaza el actual con él.
3. Funcionamiento
Teclas dentro del menú:
(*) Si estamos en un menú bloqueado no funciona. Los menues bloqueados deben incluir alguna opción que ejecute BackF o ExitF (si no la única forma de salir es hacer ON-C). El comando ExitF debe aparecer en algún menú para poder salir del programa.
Nota: Al seleccionar un item, Fácil pone en el stack su posición en el menú (real entero positivo) y luego evalúa el programa correspondiente (ver lista tipo A). Si el programa a evaluar no utiliza este dato es necesario incluir un DROP al principio.
Nota: Los objetos mencionados antes pueden ser nombres globales, locales, XLIBs, simplemente el objeto requerido, o inclusive un programa que devuelva el objeto requerido. Esto se aplica a las listas de tipo A, los objetos de fondo y los programas de las listas de tipo A. Obviamente si son nombres o programas, estos deben devolver objetos válidos (luego de hacer RCL y/o EVAL).
4. Chequeo de errores
Las versiones anteriores a la 3.0 no incluían chequeo de errores ya que era imposible que se dañase la memoria debido a errores del usuario. Como ahora todo está es Sys RPL no tuve más remedio que chequear los datos antes de usarlos.
Nota: Los errores en los programas de las listas tipo A no son interceptados por Fácil, sino que los maneja el SysOuterLoop como de costumbre (si estos programas no están escritos en User RPL se espera que quien los haya escrito se haga responsable de que chequeen sus argumentos y/o no hagan desastres).
A continuación se incluye la tabla de errores:
Cambios desde las versiones anteriores
Donde encontrarme
Si te gusta y/o encontras útil este programa mandame algún comentario a nicolas@iie.edu.uy o a nikoniko@usa.net. Se agradecen también sugerencias y reportes de errores.
Visitá mi página, ahí hay más programas y buenos links.
Nicolás