
Dibujar Cuadros o Líneas
Si bien los actuales compiladores traen sus propias ordenes para dibujar los, tan
utilizados cuadros en pantalla, vamos a explicar una pequeña rutina para dibujarlos de
una manera sencilla. Existen aún muchos programadores que se sirven de programas externos
para dibujar previamente las pantallas e incluirlas luego en la Working-Storage
Section.
Para conseguirlo nos vamos a basar en una variable de 8 dígitos que contendrá la línea y la columna de inicio y la
línea y la columna final. Además necesitaremos alguna variable mas de apoyo y una línea completa de
80 columnas, lo explico:
... WORKING-STORAGE SECTION.
01 RAYA PIC X(80) VALUE ALL "-". (carácter
196, raya continua, no guión).
01 CUADRO.
02 CUA1 PIC 99.
02 CUA2 PIC 99.
02 CUA3 PIC 99.
02 CUA4 PIC 99.
01 CUA5 PIC 99.
01 CUA0 PIC 99.
...
PROCEDURE DIVISION.
INICIO.
ACCEPT CUADRO LINE 1 COL 1 ERASE.
(coordenadas del cuadro).
DIBUJAR.
COMPUTE CUA5 = CUA4 - CUA2. (obtenemos el ancho del cuadro o la linea).
DISPLAY RAYA LINE
CUA1 COL CUA2 SIZE CUA5. (línea
superior).
IF CUA1 = CUA3 GO SEGUIR. (si era una linea, listo).
DISPLAY RAYA LINE CUA3 COL CUA2 SIZE CUA5. (línea inferior). (ahora dibujaremos las lineas izquierda y derecha del cuadro).
MOVE CUA1 TO CUA0.
DIBUJA1.
ADD 1 TO CUA0 IF CUA0 > CUA3 GO DIBUJA2.
IF CUA0 NOT = CUA3 DISPLAY SPACES LINE CUA0 COL CUA2 SIZE
CUA5.(borramos la linea por si tenía algún carácter previo).
DISPLAY "¦" LINE CUA0 COL CUA2.
(carácter 179, línea vertical).
DISPLAY "¦" LINE CUA0 COL CUA4.
GO DIBUJA1.
DIBUJA2. (ahora
dibujamos las cuatro esquinas).
DISPLAY "+" LINE CUA1 COL CUA2.
(esquina superior izquierda).
DISPLAY "+" LINE CUA1 COL CUA4.
(esquina superior derecha).
DISPLAY "+" LINE CUA3 COL CUA2.
(esquina inferior izquierda).
DISPLAY "+" LINE CUA3 COL CUA4.
(esquina inferior derecha).
SEGUIR.
...
No he podido reflejar aquí los
caracteres gráficos, pero son los de siempre en ASCII. Se podría mejorar, verificando
que nunca la línea inferior sea mayor que la superior o que la columna derecha siempre sea
menor que la izquierda, etc...
En el caso de usar el compilador de Acucobol-GT, todo esto se reduce radicalmente ya
que dispone de comandos específicos para crearlos, por ejemplo:
DISPLAY BOX LINE línea COL Columna SIZE Número de columnas
LINES Número de líneas.
DISPLAY LINE LINE línea 10 COL columna SIZE longitud.
|
|