Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL v3 (V3L10, Win32) (https://www.cobolforo.es/forumdisplay.php?f=5)
-   -   [Sintaxis] Detectar teclas de flechas (Sheet) (https://www.cobolforo.es/showthread.php?t=398)

Eslopes 2 de junio de 2016 02:43

Detectar teclas de flechas (Sheet)
 
Olá,

alguém sabe como detectar o pressionamento das teclas de seta (arriba, abajo, derecha, izquierda) no Powercobol 3.0 ?

Preciso que seja igual ao funcionamento do botão com PFx (teclas de função), ou seja, o foco não precisa estar no campo para o Power detectar a tecla (talvez algo com timer).

[]s, Emerson

Kuk 2 de junio de 2016 09:30

Eslopes, el PWC3 no integra dicha posibilidad. Para hacerlo bien (y captar otros eventos) lo que hay que hacer es sustitución del MessageLoop en WinMain. Yo lo he conseguido, lo que pasa es que la tecla TAB deja de funcionar así que de momento no considero esta opción como la mejor.

Puedes intentar con un TIMER y GetAsyncKeyState function (Windows)

Eslopes 3 de junio de 2016 03:16

1 Archivos Adjunto(s)
Biens,

estou usando teclas de função (PF5, PF6 e PF7), mas queria mesmo usar as setas.

Segue uma imagem do que estou fazendo ;)

[]s,Emerson

Archivo Adjunto 252

Kuk 3 de junio de 2016 11:27

Eslopes, ¿es un juego?! :astro:

Intenta con la función que te he dicho y si no sale pensamos en otra solución ;)

Eslopes 3 de junio de 2016 14:32

Olá,

sim, é um juego! Aliás, vai ser bem viciante, rs.

Tem algum exemplo de como chamar a API ? Tentei com call mas deu erro...

Gracias, Emerson

Kuk 3 de junio de 2016 14:46

Eslopes, tienes que meter en opciones de compilación NOALPHA.

La sintaxis para llamar WinAPI es:

Código COBOL:
  1.      CALL "MessageBoxA" WITH STDCALL USING BY VALUE WS-HWND
  2.                                            BY REFERENCE WS-MSG
  3.                                            BY REFERENCE WS-HEADER
  4.                                            BY VALUE WS-STYLE

Eslopes 4 de junio de 2016 16:03

Olá,

tentei o seguinte código sem sucesso:

Código COBOL:
  1.  01 inKeyCode         PIC S9(04) COMP-5.
  2.  PROCEDURE   DIVISION.
  3.      CALL   "GetAsyncKeyState"  WITH STDCALL USING BY REFERENCE inKeyCode
  4.  
  5.      DISPLAY inKeyCode

inkeycode sempre retorna +0000

Alguma idéia?

[]s, Emerson

Kuk 4 de junio de 2016 17:04

Eslopes, ponlo en un TIMER y haz DISPLAY, a ver si cambia cuando pinchas una tecla.

Eslopes 4 de junio de 2016 22:13

Olá,

esqueci de dizer que o código acima estava num timer disparado a cada 10ms. Mesmo assim simplesmente não retorna nada.

De acordo com o manual do Power3, o retorno seria através do registro especial "PROGRAM-STATUS". O retorno é sempre zero.

Alguma idéia ?

[]s, Emerson

Kuk 5 de junio de 2016 12:05

Eslopes, voy a intentar a mirar qué más opciones hay y te digo.


La franja horaria es GMT +2. Ahora son las 14:04.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.