RESPUESTA A LA PREGUNTA 5717 - PASCAL/TURBO PASCAL Espero que te sirva esto que te mando, con unas pocas líneas más vas a poder agregarle contornos y algún otro tipo de cosas. Si querés que se desplieguen submenúes vas a tener que re-utilizar el procedimiento menu y tomando el valor devuelto en distintas variables. const arriba=#0+#72; abajo=#0+#80; derecha=#0+#77; izquierda=#0+#75; ins=#0+#82; del=#0+#83; home=#0+#71; endd=#0+#79; enter=#13; esc=#27; back=#8; type conjunto=set of char; ch2=string[2]; VECD=ARRAY[1..10,1..10] OF STRING[20]; vec=array[1..15]of string[20]; opciones=array[1..20]of string[60]; estructura_menu =record x,y,cant:byte; titulos:opciones; end; procedure imp(x,y:integer;c:string); begin gotoxy(x,y); write(c); end; procedure vi; begin textbackground(7); textcolor(0); end; procedure vn; begin textbackground(0); textcolor(7); end; function tecla:ch2; var f:byte; t:ch2; a:char; begin f:=0; t[0]:=#0; repeat a:=readkey; t:=t+a; inc(f); until ((a<>#0) or(f=2)); tecla:=t; end; procedure menu(a:estructura_menu;var opcion:byte); var f:byte; tec:ch2; begin opcion:=1; for f:=1 to a.cant do imp(a.x+1,a.y+f,a.titulos[f]); vi;imp(a.x+1,a.y+opcion,a.titulos[opcion]);vn; repeat tec:=tecla; imp(a.x+1,a.y+opcion,a.titulos[opcion]); if(tec=arriba)and(opcion>1)then opcion:=opcion-1; if(tec=abajo)and(opcion