Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Capturar combinacion de Teclas (https://www.clubdelphi.com/foros/showthread.php?t=85758)

Novatin 28-04-2014 18:56:30

Capturar combinacion de Teclas
 
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:

Código:

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:

Código:

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:
Código Delphi [-]
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...


La franja horaria es GMT +2. Ahora son las 20:05:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi