Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL v3 (V3L10, Win32)
PowerCOBOL v3 (V3L10, Win32) IDE Freeware compatible con Windows 7/8/10/11
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Control de teclas pulsadas Begoguay PowerCOBOL (ActiveX, v4 - v11) 13 2 de septiembre de 2024 17:07
[Sintaxis] Table: Control de teclas pulsadas (SHIFT+TAB) Begoguay PowerCOBOL (ActiveX, v4 - v11) 0 15 de julio de 2020 18:23
[Sintaxis] Teclas de desplazamiento Josber PowerCOBOL (ActiveX, v4 - v11) 6 1 de mayo de 2020 14:09
[Duda] Teclas de Funcion F13 - F24 jotica PowerCOBOL (ActiveX, v4 - v11) 6 8 de mayo de 2017 12:48
[Sintaxis] Detectar la inactividad en un Form Hrmcobol PowerCOBOL (ActiveX, v4 - v11) 4 16 de julio de 2016 14:04

Respuesta
 
Herramientas

  #1
Antiguo 2 de junio de 2016, 02:43
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 20.09.2026 13:24
Posts Posts: 357
Likes enviados Enviados: 29
Likes recibidos Recibidos: 157
Pregunta Detectar teclas de flechas (Sheet)
0 Inactivo Inactivo

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 is offline   Responder Con Cita
  #2
Antiguo 2 de junio de 2016, 09:30
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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)



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 3 de junio de 2016, 03:16
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 20.09.2026 13:24
Posts Posts: 357
Likes enviados Enviados: 29
Likes recibidos Recibidos: 157

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

Pulsar la imagen para la versión amplia
Nombre:  lander2.0.png
Vistas: 160
Tamaño:  843,1 KB
Eslopes is offline   Responder Con Cita
  #4
Antiguo 3 de junio de 2016, 11:27
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Eslopes, ¿es un juego?!

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



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 3 de junio de 2016, 14:32
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 20.09.2026 13:24
Posts Posts: 357
Likes enviados Enviados: 29
Likes recibidos Recibidos: 157

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 is offline   Responder Con Cita
  #6
Antiguo 3 de junio de 2016, 14:46
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #7
Antiguo 4 de junio de 2016, 16:03
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 20.09.2026 13:24
Posts Posts: 357
Likes enviados Enviados: 29
Likes recibidos Recibidos: 157

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
Eslopes is offline   Responder Con Cita
  #8
Antiguo 4 de junio de 2016, 17:04
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #9
Antiguo 4 de junio de 2016, 22:13
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 20.09.2026 13:24
Posts Posts: 357
Likes enviados Enviados: 29
Likes recibidos Recibidos: 157

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 is offline   Responder Con Cita
  #10
Antiguo 5 de junio de 2016, 12:05
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:52.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.