Búsqueda personalizada
Regístrate gratis para participar de los foros, o si ya estás registrado haz login.
| comentario del autor | Vie Ago 28, 2009 1:16 pm | |
|
A continuación les dejo el código fuente del programita, para que lo aprovechen además cualquier usuario que vea este foro y que esté aprendiendo lenguaje pascal y por supuesto para que algún programador experto que también vea mi solicitud en este foro me pueda ayudar a resolver mi inquietud. El código es: Program Menu_Sistema; (*********************** DECLARACIONES ***************************) Uses Crt; Var op : char; {Lee una telca del teclado} opant,opact:Byte; {Para saber que opcion esta activa, y saber cual dejara de serlo} {Mover_menu, desactiva la opcion actual "ant" y la pone del color normal del menu, y activa "act" la nueva opcion resaltando del resto de opciones} Procedure mover_menu(ant,act:byte); Begin TextColor(15); {Cambia al color de opciones desactivadas} TextBackground(0); Case ant Of {Busca cual opcion desactivara "ant"} 1:Begin Gotoxy(30,11);Write ('INGRESAR REGISTROS '); End; 2:Begin Gotoxy(30,12);Write ('CONSULTAR REGISTROS'); End; 3:Begin Gotoxy(30,13);Write ('REPORTE REGISTROS'); End; 4:Begin Gotoxy(30,14);Write ('MODIFICAR REGISTROS'); End; 5:Begin Gotoxy(30,15);Write ('BORRAR REGISTROS '); End; 6:Begin Gotoxy(30,16);Write('SALIR DEL SISTEMA '); End; End; TextColor(LightGreen); {Cambia al color de opciones activadas} Textbackground(LightBlue); Case act Of {Busca que opcion se va a activar "act"} 1:Begin Gotoxy(30,11);Write ('INGRESAR REGISTROS '); End; 2:Begin Gotoxy(30,12);Write ('CONSULTAR REGISTROS'); End; 3:Begin Gotoxy(30,13);Write ('REPORTE REGISTROS'); End; 4:Begin Gotoxy(30,14);Write ('MODIFICAR REGISTROS'); End; 5:Begin Gotoxy(30,15);Write ('BORRAR REGISTROS '); End; 6:Begin Gotoxy(30,16);Write('SALIR DEL SISTEMA '); End; End; End; (********************* INICIO DEL PROGRAMA *********************) Begin TextColor(15); TextBackground(0); Clrscr; opant:=0; {Inicializamos el valor de opcion desactivada, ninguna la primera vez} opact:=1; {Activamos el valor de opcion activada, la primera opcion la primera vez} Repeat TextBackground(0); TextColor(White); {Esto se va a repetir cada vez que seleccionemos una opcion, porque se borra el contenido de la pantalla y debemos volver a escribir todas las opciones} Textcolor(15); TextBackground(0); Begin Delay(0); Textcolor(LightCyan); TextBackGround(0); Gotoxy(23,3);Write ('DESARROLADO POR: VICTOR CABRERA'); TextColor(15); TextBackGround(Blue); Gotoxy(21,5);Write('ALDEA UNIVERSITARIA HEROES DE CANAIMA 4F'); Gotoxy(24,6);Write('SISTEMA DE CONTROL DE REGISTROS DEL'); Gotoxy(39,7);Write('PNFSI'); TextColor(15); TextBackground(0); Gotoxy(30,11);Write ('INGRESAR REGISTROS '); Gotoxy(30,12);Write ('CONSULTAR REGISTROS '); Gotoxy(30,13);Write ('REPORTE REGISTROS '); Gotoxy(30,14);Write ('MODIFICAR REGISTROS '); Gotoxy(30,15);Write ('BORRAR REGISTROS '); Gotoxy(30,16);Write ('SALIR DEL SISTEMA '); Textcolor(LightCyan);Gotoxy(26,1 {Actualizamos la vista del menu, la primera vez, se seleccionara la primera opcion, despues, quedara seleccionada la ultima opcion a la cual se haya accedido} mover_menu(opant,opact); End; {Leemos una tecla, pero haciendo un ciclo, y salimos de el hasta que se presione enter o la felca del curso, arriba/abajo} Repeat op:=readkey; Until op in [#13,#27,#72,#80]; {#13=enter, #72=Arriba, #80=abajo} {Si se presiona tecla arriba} If op=#72 Then Begin opant:=opact; {La opcion activa, pasara a ser desactivada} If opact=1 Then {Si estoy en la primera opcion} opact:=6 {Voy a la ultima} Else dec(opact); {Si no, decremento, y se activa la opcion que esta arriba de la actual} End Else If op=#80 Then Begin {Si fue tecla abajo} opant:=opact; {La opcion activa pasara a ser desactivada} If opact=6 Then {Si estoy en la ultima} opact:=1 {Pasa a la primera} Else inc(opact); {Si no, incremeneto, y se activa la siguiente opcion} End Else {Si se presion¢ enter, pero la opcion no fue diferente de salir "5"} If (op =#13) And (opact<>6) Then Begin TextColor(15); TextBackground(0); Clrscr; Case opact Of {Busco la opcion que estaba activa "opAct"} {Aqui generalmente se llama al procedimiento correspondiente como Ingreso de Registros, Reportes, Consultas de Registros, etc.} 1 : Begin TextColor(15);TextBackground(0); Gotoxy(28,1 Gotoxy(25,20);Write('PRESIONE UNA TECLA PARA CONTINUAR'); Readkey; Clrscr; End;{FIN DEL CASO 1} 2 : Begin TextColor(15); TextBackground(0); Gotoxy(28,1 Gotoxy(25,20);Write('PRESIONE UNA TECLA PARA CONTINUAR'); Readkey; Clrscr; End;{FIN DEL CASO 2} 3 : Begin TextColor(15); TextBackground(0); Gotoxy(28,1 Gotoxy(25,20);Write('PRESIONE UNA TECLA PARA CONTINUAR'); Readkey; Clrscr; End;{FIN DEL CASO 3} 4 : Begin TextColor(15); TextBackground(0); Gotoxy(26,1 Gotoxy(25,20);Write('PRESIONE UNA TECLA PARA CONTINUAR'); Readkey; Clrscr; End;{FIN DEL CASO 4} 5 : Begin TextColor(15); TextBackground(0); Gotoxy(26,1 Gotoxy(25,20);Write('PRESIONE UNA TECLA PARA CONTINUAR'); Readkey; Clrscr; End;{FIN DEL CASO 5} End;{FIN DEL CASE} End;{FIN DEL IF} Until (((op=#13) And (opact=6)) or (op=#27)); {Aquí finaliza el Repeat, cuando está en la posicion salir y se le dá a la tecla enter, o cuando se presiona la tecla Escape(Esc)} (*************************** FIN DEL REPEAT ***************************) {Termina el programa cuando se presione enter pero sobre la opcion salir "5"} End.{FIN DEL CUERPO DEL PROGRAMA} PD: Si no es mucha molestia, agradecería que lo hicieran para compilarlo en cualquier compilador de Linux, ya que en algunas librerías de borlan, no están disponibles en dichos compiladores de Linux, y por supuesto si lo pudieran comentar mucho mejor, así sería más provechosa la interpretación, ya que me estoy iniciando en este lenguaje. GRACIAS DE ANTE MANO! |
||