SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: progdan en Sábado 2 de Marzo de 2002, 06:30

Título: Re: flechitas sin mayusculas RETO
Publicado por: progdan en Sábado 2 de Marzo de 2002, 06:30
tengo un menu movil que se desplaza presionando flechita arriba y abajo.

estos numeros ascii corresponden tambien a unas mayusculas.

como hacer para que el menu se mueva solo con las flechas sin las mayusculas.

[Modificado el 3/2/02 por progdan]

[Modificado el 3/2/02 por progdan]
Título: Re: flechitas sin mayusculas RETO
Publicado por: tenesor en Sábado 2 de Marzo de 2002, 06:35
Hola.

Los codigos ASCII correspondientes a las flechas son:
---------------
ARRIBA:    | 72
---------------
ABAJO:     | 80
---------------
DERECHA:   | 77
---------------
IZQUIERDA: | 75
---------------

Espero que esto te sirva.

Saludos,
 Tenesor
Título: Re: flechitas sin mayusculas RETO
Publicado por: progdan en Sábado 2 de Marzo de 2002, 06:49
Citar
Hola.

Los codigos ASCII correspondientes a las flechas son:
---------------
ARRIBA:    | 72
---------------
ABAJO:     | 80
---------------
DERECHA:   | 77
---------------
IZQUIERDA: | 75
---------------

Espero que esto te sirva.

Saludos,
 Tenesor


esos numeros tambien corresponde a unas mayusculas, como hacer para que el menu solo se mueva con las flechitas y no con esas mayusculas.
Título: Re: flechitas sin mayusculas RETO
Publicado por: tenesor en Sábado 2 de Marzo de 2002, 10:42
ummm, me parece que tu tienes el problema en otra parte del codigo. No hace falta pretar shift para nada. Haz un ejemplo simple con Switch-case y verás como no.


Pero bueno, si no tienes ganas de pensar, aqui va el programita:)

------------------
#include <stdio.h>

main()
{
    char chr;

    printf("Pulsa una flechan");

    do{
    chr=getch();


        switch(chr){
           case 72:
              printf("nArriba");
           case 80:
              printf("nAbajo");
           case 75:
              printf("nIzquierda");
           case 77:
              printf("nDerecha");
        }
    }while(chr!=48);
}
-----------------------

Se me olvidaba! el 48 es el 0 (cero). SI pulsas 0 sale del programa.

Saludos,
  Tenesor



[Modificado el 3/2/02 por tenesor]
Título: Re: flechitas sin mayusculas RETO
Publicado por: progdan en Domingo 3 de Marzo de 2002, 20:56
------------------
#include <stdio.h>

main()
{
    char chr;

    printf("Pulsa una flechan");

    do{
    chr=getch();


        switch(chr){
//Si presiona la 'M' El entrará a este caso
           case 72:
              printf("nArriba");

//Si presiona la 'P' El entrará a este caso
           case 80:
              printf("nAbajo");

//Si presiona la 'K' El entrará a este caso
           case 75:
              printf("nIzquierda");

//Si presiona la 'H' El entrará a este caso
           case 77:
              printf("nDerecha");
        }
    }while(chr!=48);
}
-----------------------

COMO HACER PARA QUE ESTAS MAYUSCULAS AL PRESIONARLAS NO ME MUEVA EL MENU.

-> Solo con las flechitas.:P
Título: Re: flechitas sin mayusculas RETO
Publicado por: tenesor en Lunes 4 de Marzo de 2002, 16:40
Joer, pues no sabia que esto pasaba...

Pues me parece que si el codigo ascii es el mismo no hay solucion para lo que planteas.

Lo que no se si lo he entendido muy bien. Qué más dá que si pulsa M sea lo mismo a la flecha 77? quien se va a molestar en buscar y utilizar esto?

Saludos,
  Tenesor
Título: Re: flechitas sin mayusculas RETO
Publicado por: agvabraham en Sábado 16 de Marzo de 2002, 10:42
Creo que es un poco tarde para responder este mensaje...pero bueno.

Mira es facil cuando presionas esas teclas te devuelve dos valores ya que es un codigo estendido ok el primer valor es 0 y despues el de la tecla pulsada..

Bueno por lo visto ya tienes el valor de la tecla ahora compara si el primer valor es un cero,,, puedes meterlo en un ciclo infinito con condicion de salida ESC
 
do {
    car=getch();
    if (car = 0)
       car=getch
    switch (car)
   
    case 72: arriba ();
}while (car != ESC );

recuerdo que algo asi utilice para crear un menu con movimiento de cursor.

Bueno espero te sirva.
Título: Re: flechitas sin mayusculas RETO
Publicado por: bob en Lunes 25 de Marzo de 2002, 20:17
Si, las "flechitas" devuelven:

0

y luego

XX (el codigo que sea)

lo mas facis es hacer:

do {
   chr=getch();

   if (chr == 0)
      switch(chr){
      case 72:
      ....
      }
   }

} ...

y tal y tal

ciao
Título: Re: flechitas sin mayusculas RETO
Publicado por: agvabraham en Jueves 4 de Abril de 2002, 07:59
Claro que no es lo mas facil porque si rectificas tu codigo   la variable   chr
tiene el valor de cero lo cual quiere decir que en el switch buscara la opcion que valga cero y no buscara la opcion que realmente necesitas evaluar por eso es necesario sacar del buffer el verdadero valor de la tecla...espero lo entiendas y sino aqui estamos para aclararlo....
Título: Re: flechitas sin mayusculas RETO
Publicado por: akashico en Viernes 12 de Abril de 2002, 13:13
Este problema se soluciona con codigo ensamblador. Lo buscare y cuando lo tenga lo pasteo.
Título: flechitas sin mayusculas RETO
Publicado por: observador en Miércoles 5 de Marzo de 2003, 11:06
Bien... si alguien dijo que tal ves era un poco tarde para contestar pues entonces yo llegue mas tarde todavia... pero traje la solucion... tal ves a los autores de los mensajes anteriores ya no les interese sim embargo alguien puede ver los mensajes y caen en cuenta que esa duda tambien le surguio...

Pues que creen... la solucion esta en manipular los bits de las teclas que se precionan... Asi se puede diferenciar las techlas H, M, P, y K de Flechas ARRIBA, DERECHA, ABAJO e IZQUIERDA, respectivamente... Es decir H es diferente de Flecha ARRIBA, M es difecente de Flecha ABAJO, etc...

Les recomiendo que bajen el codigo que anexe al mensaje... El codigo fue probado y compilado en Turbo C++ 3.0 de Borland...

A mi parecer esta muy bien... antes tenia una funcion que solo me reconocia teclas extendidas (Flechas, F1-F10, ESC, Inicio, Fin, Insert, etc.) y otra que me reconocia combinacion de teclas (CTRL+A, ALT+A, etc. por ejemplo) y otra para caracteres normales (A-Z, a-z, 0-9, +,-,*, etc.) pero con esta nueva funcion todo eso paso a la historia... ahora una sola funcion me reconoce tanto caracteres normales, como teclas extendidas, asi como combinacion de teclas... y ahora esta al alcande de ustedes...

Bueno espero que les sirva... si tienen dudas o comentarios escribirme a:

xsantosbussines@hotmail.com

Nota: Quitenle la x a la direccion, solo se la puse para evitar la intrusion de programas robots y evitar el correo basura...

Bien Chao y hasta pronto...