Pascal/Turbo Pascal - Como detecto Ctrl, F11 F12

 
Vista:

Como detecto Ctrl, F11 F12

Publicado por Alex G (2 intervenciones) el 05/02/2002 18:11:34
como hago para detectar esas teclas y todas las del teclado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como detecto Ctrl, F11 F12

Publicado por Diego Romero (282 intervenciones) el 06/02/2002 01:02:53
Como sabrás la función readkey de la Unit CRT devuelve el codigo ASCII de la tecla presionada, si se trata de una tecla especial (las grises) primero devuelve 0 y hay que volver a llamar a esta función para tomar el segundo codigo pero lamentablemente no reconoce las teclas F11 y F12 pues readkey fue diseñada para teclados estandar y no extendidos.
Hay varias formas de solucionar esto, una de ellas es leer directamente el puerto del teclado, algo asi como
codigo:=port[$60];
o bien programar una interrupción que se dispare cuando ocurre la interrupción $9 de la BIOS, esto es lo mejor ya que podrás tomar el codigo de rastreo de la tecla y luego hacer una conversión a ASCII (por ejemplo la tecla ESC tiene codigo de rastreo 1 pero devuelve el codigo ASCII 27).
Pero para no complicarte la vida y no reinventar la rueda puedes buscar una Unit que haga todo esto por tí.
Esta es una:
http://www.devq.net/pascal/src/keybrd.pas (comentarios en inglés)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar