QuickBasic - Menu con flechas del cursor y tecla Enter en QBASIC o Power BASIC

 
Vista:

Menu con flechas del cursor y tecla Enter en QBASIC o Power BASIC

Publicado por nicolas2015alcubo (1 intervención) el 08/05/2015 21:50:18
Yo me hice el siguiente menú donde el usuario debe elegir una opción presionando directamentevel número indicado en la opción. Esre sería el código fuente (Es válido también en Power BASIC 3.5, lo probé y lo compilé a este código fuente y funciona OK):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
GOSUB MENU
 
MENU:
OPCION$ = "A"
CLS
LOCATE 2,30:PRINT "-MI MENU PRINCIPAL-"
LOCATE 5,20:PRINT "1- SUMAR 2 NUMEROS"
LOCATE 6,20:PRINT "2- ACERCA DE..."
LOCATE 7,20:PRINT "3- SALIR"
LOCATE 20,20:PRINT "PARA ELEGIR PULSE EL NRO. INDICADO..."
DO
    OPCION$ = INKEY$
LOOP WHILE OPCION$ = ""
 
SELECT CASE OPCION$
    CASE "1"
    GOSUB SUMAR
 
    CASE "2"
    GOSUB ACERCA
 
    CASE "3"
    GOSUB SALIR
 
    CASE ELSE
    GOSUB ERRORSELECCION
 
END SELECT
 
SUMAR:
CLS
INPUT "INGRESE UN NUMERO: ", N1
INPUT "INGRESE OTRO NUMERO: ", N2
R = N1 + N2
PRINT
PRINT "LA SUMA DE ESOS 2 NUMEROS ES:"; R
PRINT "PULSE UNA RECLA PARA VOLVER AL MENU..."
DO
LOOP UNTIL INKEY$ <> ""
CLS
GOSUB MENU
 
ACERCA:
CLS
LOCATE 6,20:PRINT "PROGRAMADO PIR NICOLAS MATIAS FUNTALAS YSANDO BASIC"
LOCATE 8,20:PRINT "PRESIONE UNA TECLA PARA IR AL MENU..."
DO
LOOP UNTIL INKEY$ <> ""
CLS
GOSUB MENU
 
ERRORSELECCION:
LOCATE 22,30:PRINT "OPCION NO VALIDA!!!"
DO
LOOP UNTIL INKEY$ <> ""
CLS
GOSUB MENU
 
SALIR:
CLS
PRINT "HASTA LA VISTA BABY!!!"
END

Como ustedes podrán apreciar la forma en que el usuario selecciona una opción del menú es sencillamente presionando el numerito indicado en la opción. Pero el tipo de menú que yo quisiera poder hacer es ese en que el usuario debe usar las teclas de flecha de los cursores Arriba/Avbajo para desplazarse por las opciones del menú y luego tenga que presionar Enter para sdleccionar la opcion resaltada. Vendría a ser algo igual con lo que sucede en Clipper 5.2 que para hacer ese tipo de menúes que yo pretendo está las rutinas PROMPT y MENU TO. Ejemplo de menúes con ese sistema de selección pueden ser el menú de arranque de Windows que aparece al apretar F8, los sistemas antiguos basados en MS-DOS que hay en los comercios, la BIOS, etc. Yo para correr el QBASIC y el POWER BASIC uso el gran DOSBOX 0.74. Hasta uso gdosbox en Android. Ni Qbasic ni Power Basic tiene un MENU TO para hacer ese tipo de menúes,;así que dudo que se puedan crear ese tipo de menúes. Si alguien conoce funciones en ese lenguaje para poder hacer ese mismo menú que les mostré, pero con el sistema de selecciòn con las flechas de los cursores y la tecla Enter para escoger la opción resaltada que me ayude. Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4
Ha mantenido su posición en QuickBasic (en relación al último mes)
Gráfica de QuickBasic

Menu con flechas del cursor y tecla Enter en QBASIC o Power BASIC

Publicado por Antoni Masana (4 intervenciones) el 18/12/2015 10:55:43
Si se puede hacer.

Lo que pasa es que te lo tienes que hacer tu.

Detrás de PROMPT y MENU TO de clipper hay una serie de instrucciones que lo hacen y que alguien programo en su día.

Lo que debes hacer es programarlo tu mismo y no es complicado.

Es un poco complejo de explicar pero cuando se entiende el concepto es muy fácil, la idea consiste en crear las opciones de menú en una tabla, y tener una variable con la opción resaltada.
Creas una subrutina o función o procedimiento que se encarga de mostrar la tabla algo asi:

1
2
3
4
5
6
7
8
9
10
SUB Ver_Menu(a_Tabla, n_Menu)
    FOR a=1 to len(a_Tabla)
        IF a=n_Menu THEN
           COLOR INVERSO
        ELSE
           COLOR NORMAL
        END IF
       LOCATE a+5, 20 : PRINT a_Tabla
    NEXT
END SUB

Esta función ira dibujando el menú y resaltando la opción según el valor de n_Menu

Haces un bucle para tratar las teclas y entre otras cosas pones: El segundo IF hace que sea circular es decir cuando sale por arriba vuelve por abajo

1
2
3
4
...
IF Key$ = Tecla Subir THEN n_Menu = n_Menu - 1 : IF n_Menu = 0 THEN n_Menu = LEN(a_Tabla)
IF Key$ = Tecla Bajar THEN n_Menu = n_Menu + 1 : IF n_Menu = LEN(a_Tabla) THEN n_Menu = 1
...

Si te interesa tengo un menú de este tipo que se puede configurar con diferentes menús y submenús, esta realizado programado en QBASIC 4.5 funciona como quieres y puedes utilizarlo para llamar a cualquier programa en MS-DOS

También debo tenerlo en Clipper sin usar el PROMPT y MENU TO y si rebusco un poco en Qbasic encontrare algo.

Te puedo enviartelo a tu correo

Escribeme a mi dirección de correo si te interesan los fuentes.

Explicar todo el procedimiento aquí es un poco de lío.

Saludos y que la fuerza te acompañe.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar