Los Valores retornados por el MSGBOX
El valor retornado por MSGBOX()
identifica el botón que el usuario seleccionó, como sigue:
Valor |
Botón Seleccionado |
1 |
Ok |
2 |
Cancel |
3 |
Abort |
4 |
Retry |
6 |
Yes |
7 |
No |
Ejemplo 1:
El siguiente crea un diálogo que despliega "Esto es un mensaje" y
un OK como botón. Además, utilizará el nombre del programa como título de la
caja y retornará un valor de 1.
LET x=MSGBOX("Esto es un mensaje")
Ejemplo 2:
El siguiente crea un diálogo que muestra
el contenido de MENSAJE$ como el texto de mensaje; que contiene los Botones
Cancel y Retry y un ícono con el signo de interrogación; y despliega el contenido
de TITULO$ como el título de diálogo.
LET x=MSGBOX(mensaje$,5+32+256,titulo$)
Seleccionando el botón Cancel (valor por omisión) retorna un valor de 2.
Seleccionando el Botón Retry retorna un valor de 4.
Otros ejemplos:
LET m=MSGBOX("Desea cancelar la impresión",4+32,"Cancelar")
LET m=MSGBOX("La impresora no está lista",16,"Error")
Uso del FIN( ) del SYSWINDOW
Al igual que con cualquier otro dispositivo,
la función FIN() regresa información útil relativa
a la condición de ese dispositivo. Siguientes son algunos valores regresados
por la función FIN() en un canal SYSWINDOW que podría
ser usado cuando migre al GUI.
FIN(syswindow)
Con esta función normal FIN() obtenemos información de cualquier
dispositivo de terminal. De interés particular son los campos {maxcols}
y {maxrows}. Estos pueden ser cambiados cuando el SYSWINDOW es cambiado
de tamaño por el usuario. (Esto solamente ocurre si la caja "Lock Cols/Rows"
en el diálogo de Fuentes/Tamaño no está marcada o chequeada).
El siguiente ejemplo nos trae e imprime las
dimensiones actuales del SYSWINDOW abierto al canal 0.
0010 DIM F$:TMPL(0,IND=0)
0020 F$=FIN(0)
0030 PRINT "Cols",F.MAXCOLS,", Filas",F.MAXROWS
>run
Cols 80, Filas 25
FIN(syswindow,IND=1)
Esta función FIN() nos retorna información que es útil para aplicaciones
que necesitan seguir el movimiento y actividad del botón del ratón mientras
está sobre el área de despliegue del SYSWINDOW. Esta es una rara necesidad,
pero puede ser utilizada para algunos efectos interesantes, como con un texto
de varias líneas {drag-and-drop}.
El siguiente ejemplo nos informa si el botón
izquierdo del ratón está oprimido, y donde el cursor del ratón está localizado
(o ha sido localizado) dentro del SYSWINDOW. Ejecútelo algunas veces, moviendo
el ratón y oprimiendo a veces el botón izquierdo del ratón, para notar el efecto
completo.
0001 PRINT 'CS',"Para apreciar los movimientos del MOUSE:
muévalo,
0001:oprimiendo y soltando el botón"
0010 DIM F$:TMPL(0,IND=1)
0020 F$=FIN(0,IND=1)
0030 PRINT "El botón del ratón está ",
0040 IF AND(BIN(F.MOUSE_BUTTONS,1),$01$)=$01$ THEN PRINT "oprimido"
0040:ELSE PRINT "sin oprimir"
0050 PRINT "Cursor en col",F.MOUSE_TERM_COL," lín.",F.MOUSE_TERM_ROW
0060 WAIT 1; GOTO 20
|