PDA

Ver la Versión Completa : Capturar combinacion de Teclas


Novatin
28-04-2014, 18:56:30
Que tal amigos,

Estoy trabajando con Turbo Pascal... )con el único fin de aprenderme las bases para adentrarme en delphi :p) ... y como practica estoy transportando código desde turboC.. sin embargo estoy tropezando con un gran problema.. y es que tengo el siguiente código en C:

int select;
.....

if(select!=ESC) //captura de Tecla!!!
{
//select=getch();
for(i=0;i<20;i++)
if(kbhit())
getch();
select=getch();

if(select==0)
select=getch()+1000;
}
.....

El cual me permite capturar combinaciones de teclas como Ctrl+Tab y Ctrl+Backspace; e intentado hacer lo mismo en pascal... Pero me funciona a medias, es decir me funciona para teclas sueltas pero en cuanto intento usar Ctrl+Tab y Ctrl+Backspace no me anda...:( , este es el código que uso:

select: Char;
...
if(select<>ESC) then {captura de Tecla!!!}
begin
for i:=1 to 20 do
if(KeyPressed)then
ReadKey;
select:=ReadKey;

if select=#0 then
select:=ReadKey+1000;
end;
...

me podrían ayudar a encontrar donde me estoy equivocando??

ecfisa
28-04-2014, 19:26:27
Hola Novatin.

Realmente hace muchísimos años que no toco Turbo Pascal, pero recuerdo que la función ReadKey te devolvía un byte si se había presionado una tecla normal y cero si era extendida, obteniendo el valor con una nueva lectura. Y, si mi memoria no falla creo que era algo como:

var
ch: Char;
begin
repeat
ch := ReadKey;
if ch = #0 then
begin
ch:= Readkey;
case ch of
#80: // Key down
#72: // Key up
...
end;
until ch = #27
...

Pero eso era para el viejo DOS... :rolleyes:, no lo dispongo para hacer la prueba.

Saludos :)

Novatin
01-05-2014, 17:09:18
Gracias...

Al final tuve que usarme Shift+Tab y Ctrl+BackSpace... :D
Pero ya me anduvo... espero algún día dejar de usar D.O.S. pero aun no puedo hacerlo, intente convertir todos mis programas a microcontrolador y, aunque obtuve buenos resultados funcionalmente hablando, tropecé con insuficiente memoria ram para manejar una buena cantidad de datos y posibilidad "cero" de mostrar gráficos.. y ni que decir de intentar archivar datos ya que solo el uso de una memoria mmc/sd en un microcontrolador te consume toda la memoria de programa.. :om

En fin, un saludo, y aquí sigo al pie del cañon...