![]() |
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 |
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) |
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 |
Eslopes, ¿es un juego?! :astro:
Intenta con la función que te he dicho y si no sale pensamos en otra solución ;) |
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 |
Eslopes, tienes que meter en opciones de compilación NOALPHA.
La sintaxis para llamar WinAPI es: Código COBOL:
|
Olá,
tentei o seguinte código sem sucesso: Código COBOL:
inkeycode sempre retorna +0000 Alguma idéia? []s, Emerson |
Eslopes, ponlo en un TIMER y haz DISPLAY, a ver si cambia cuando pinchas una tecla.
|
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 |
Eslopes, voy a intentar a mirar qué más opciones hay y te digo.
|
Olá,
encontrei uma possível solução :) Código COBOL:
Agora posso terminar o jogo :cerv: Gracias, Emerson |
Eslopes, para qué haces la llamada a "GetKeyState" si no usas su retorno después?
|
Olá,
de acordo com o post do forum abaixo, nem sempre o Windows faz um scan das teclas, então GetKeyState força este scan. Cita:
GetKeyboardState() problem Saludos, Emerson |
Hola, no estoy seguro si esta subrutina te pueda servir
Código:
CBL_READ_SCR_KEYUser’s Guide capitulo 11 Esto es de NetCOBOL CBL routines. |
Olá, esta era minha primeira opção, mas o PowerCobol 3 não tem suporte para esta rotina, apenas a versão 4 em diante.
Todavia, a chamada à API que usei está funcionando perfeitamente. Ela poderia inclusive ser usada para criar uma rotina de entrada de dados, substituindo o uso de Textbox (pense no caso de uma aplicação de POS - Point Of Sale). Saludos, Emerson |
Uma outra coisa, a API detecta (e retorna) múltiplas teclas pressionadas, incluindo se estão em CAPS LOCK, ou se CONTROL, SHIFT ou mesmo se as teclas do mouse foram pressionadas. É um muito interessante mesmo.
Saludos, Emerson |
Eslopes, tu rutina funciona a la perfección, aqui estan los codigos del resto de las teclas...
NOTA: para detectar una tecla con el ejemplo de Eslopes, debemos sumarle uno al código. Código:
Código Tecla |
| La franja horaria es GMT +2. Ahora son las 14:56. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.