PDA

Ver la versión completa : Haciendo un menu bonito...



Dwarft
08-09-2004, 12:00
Hola a todos !

Estoy intentado hacer un menu utilizando las funciones de conio.c ( textbackground() y textcolor() ). Si pulsas, por ejemplo, la tecla 'a' pues habria una variable que se sumaria en 1 y si pulsas, por ejemplo, la tecla 'q' pues esa misma variable se restaria en 1 y cuando pulsases '\n' (intro) seleccionaria en el switch el valor de esa variable. Ademas, dependiendo del valor de esa variable, habria un parrafo del menu que seria distinto en color a los demas (se veria ese parrafo como seleccionado para pulsar despues intro).

Bien, el problema esta cuando tengo que utilizar una funcion que no espere un intro. Es decir, que yo pulse una tecla y ya guarde en una variable la tecla pulsada sin haber tenido que pulsar intro despues.

Podriais recomendarme o decirme una funcion con esa caracteristica ??
No me importa si la funcion es para C o C++ y ya puestos, si me decis en cada uno, mejor :0= jeje :P

Salu2 !
Asias ^^

P.D: Espero haberme explicado :S jeje

Scar_T
08-09-2004, 20:02
pues la funcion getch(), sirve para eso

Dwarft
09-09-2004, 01:24
El caso es que lo he probado... Voy a ver otra vez :S

Editado: Lo he probado y no me funciona, tengo que pulsar enter :(...
Seria asi, no ?
variable_char = getch();

Salu2 !

Scar_T
09-09-2004, 02:14
Yo recuerdo que hace ya varios años yo hacia mis menus con esa funcion (getch()), y si no mal recuerdo no tenias el porque dar enter, incluso lo usaba dentro de un switch

switch(getch()) {
...
}

|RooT|
09-09-2004, 02:22
Eso es porque en linux la instruccion getch() recoje el codigo del primer caracter pulsado y asta que no pulsas enter no actualiza el buffer de entrada (STDIN) prueba a ver con otras instrucciones como por ejemplo getche() o en C++ cin.get creo recordar que era. Ahora mismo toy algo sobado mañana si eso te contesto y te digo alguna solucion xD

Bye

Scar_T
09-09-2004, 04:18
???,

Yo no sabia que el lo estubiera haciendo bajo linux, pense que era para MSDOS, por las funciones textcolor y textbackground, además según recuerdo la libreria conio.h no es estandar en linux.

|RooT|
09-09-2004, 13:23
Sorry se me ha ido la castaña xD La conio (CONsole Input Ouput) es una libreria de Borland, lo que pasa es que yo la tengo portada a linux xD Pero bueno la instruccion getchar() de linux le pasa exactamente lo mismo, hasta que no es pulsada la tecla enter == '\n' no reacciona a los cambios.

chegato
30-10-2004, 10:22
eso!!! como lo haria el loco con el '\n' son dos caracteres o no?? en ese caso lo mejor que podrias hacer es un arreglo de laro dos o sea swith(arreglo[2]) { case ('\n') y bla bla bla :-) por lo qoe entendi que preguntaste bueno bye ;-)