RE:USO DEL CASE Y UNA CUADRO DE LISTA
Estimado,
Lo que solicita son 2 instrucciones por separado que obviamente pueden funcionar en conjunto, alternativas en V/pro5 serian el famoso 'goto' o los if, else, break
evidentemente el case es mas elegante ;-)
Pero respondiendo a tu pregunta creo que estas funciones del CTRL te pueden ayudar;
X$=ctrl(sysgui,objeto,1)
trae el texto de la selección
X$=ctrl(sysgui,objeto,2)
trae el binario de la selección, para ocuparlo ----> dec(x$(1,2))
X$=ctrl(sysgui,objeto,3)
nº de elementos en formato binario
X$=ctrl(sysgui,objeto,7)
trae to2 los elementos de la lista, el valor del separador en hexadecimal es el $0A$
Con respecto al CASE, en V/pro5 lo maneja con los ID de los controles
(V/pro5=orientado al evento)
EL case se maneja de la misma manera que en otros lenguajes, e aquí un ejemplo;
2490 REM ======AGREGA UN BBX AL MODULO SELECCIONADO==============
2500 LISTA_BBX:
2510 LET ID=5
2520 CALL "pantalla",DIR$,ID
2530 CLOSE (1); OPEN (1)"archivo_bbx.arc"
2540 SWITCH E.ID; REM .............................>Control por modulo
2550 CASE 412
2560 LET MODULO$="GERENCIA"; LET XLISTA=401; BREAK
2570 ESCAPE
2580 CASE 422
2590 LET MODULO$="ADMINISTRACION"; LET XLISTA=403; BREAK
2600 CASE 432
2610 LET MODULO$="CONTABILIDAD"; LET XLISTA=404; BREAK
2620 CASE 442
2630 LET MODULO$="OTRA AREA 2"; LET XLISTA=405; BREAK
2640 CASE 452
2650 LET MODULO$="OTRA AREA 3"; LET XLISTA=406; BREAK
2660 SWEND
2670 REM ...............................................................
eso seria...
espero que te sirva de algo