Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Activar Un Form desde otro form Roberto PowerCOBOL (ActiveX, v4 - v11) 5 21 de mayo de 2024 14:35
[Sintaxis] Form em memoria Paulo Fujitsu COBOL 2 3 de mayo de 2019 14:10
[Sintaxis] Creación Form jmeza PowerCOBOL (ActiveX, v4 - v11) 0 20 de noviembre de 2018 22:04
[Sintaxis] Error en ExecuteSync Josber PowerCOBOL (ActiveX, v4 - v11) 3 23 de agosto de 2017 22:34
[Sintaxis] Pasar parametro en "ExecuteSync" Roger PowerCOBOL (ActiveX, v4 - v11) 7 27 de diciembre de 2015 22:46

Respuesta
 
Herramientas

  #1
Antiguo 11 de diciembre de 2015, 14:45
Recato53
Patrocinador del Foro
Última Actividad 19.07.2025 12:10
Posts Posts: 79
Likes enviados Enviados: 72
Likes recibidos Recibidos: 11
Consola El Form queda Minimizado haciendo ExecuteSync
0 Inactivo Inactivo

Buenos días.

Estoy desarrollando una aplicación en la que combino programas PowerCobol y RMCobol.

Cuando llamo a un programa RMCobol, ejecuto la siguiente rutina:
Código COBOL:
  1. *--> BLOQUEAMOS VENTANA, PUNTERO DE ESPERA
  2.         MOVE POW-FALSE TO "Enabled" OF POW-SELF
  3.         MOVE POW-MP-WAIT TO "MousePointer" OF POW-SELF
  4.        
  5.         MOVE "RUNCOBOL.EXE PROGRAMA.COB" TO COMANDO
  6.         INVOKE POW-SELF "ExecuteSync" USING COMANDO POW-SWHIDE
  7.        
  8. *--> DESBLOQUEAMOS VENTANA, PUNTERO POR DEFECTO
  9.         MOVE POW-TRUE TO "Enabled" OF POW-SELF
  10.         MOVE POW-MP-DEFAULT TO "MousePointer" OF POW-SELF

El problema es que cuando vuelve de ejecutar el programa, el Formulario que ha realizado la llamada se queda el la Barra de tareas.

Como puedo evitar esto.

Muchas Gracias.
Recato53 is offline   Responder Con Cita
  #2
Antiguo 11 de diciembre de 2015, 17:49
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

recato53,

Não estará errado o comando:
Código COBOL:
  1. INVOKE POW-SELF "ExecuteSync" USING COMANDO POW-SWHIDE

POW-SWHIDE é para não aparecer visível a Form.
Penso que deveria ser POW-SWNORMAL ou POW-SWSHOWMAXIMIZED.

ou seja, deverias usar:
Código COBOL:
  1. INVOKE POW-SELF "ExecuteSync" USING COMANDO POW-SWNORMAL

Saludos,
Rui

---------- Post añadido : 18:49 ---------- Post anterior : 18:28 ----------

Só agora reparei, que o problema é na FORM que chama o outro programa.

Isso poderá ser outro problema. Ao executar o comando "ExecuteSync" a form que chama está visível??? Quando é que aparece na barra de tarefeas?? No momento em que chama o outro programa, ou quando ele termina e regressa à Form original??

Un saludo,
Rui
Rapinto is offline   Responder Con Cita
  #3
Antiguo 11 de diciembre de 2015, 19:12
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Recato53, intenta hacer lo siguiente a ver si funciona:

Código COBOL:
  1.    *--> BLOQUEAMOS VENTANA, PUNTERO DE ESPERA
  2.             MOVE POW-FALSE TO "Enabled" OF POW-SELF
  3.             MOVE POW-MP-WAIT TO "MousePointer" OF POW-SELF
  4.  
  5.             MOVE "RUNCOBOL.EXE PROGRAMA.COB" TO COMANDO
  6.             INVOKE POW-SELF "ExecuteSync" USING COMANDO POW-SWHIDE
  7.  
  8.     *--> MOSTRAMOS FORM COMO ANTES <===============
  9.             INVOKE POW-SELF "ShowForm" USING POW-SWNORMAL
  10.  
  11.     *--> DESBLOQUEAMOS VENTANA, PUNTERO POR DEFECTO
  12.             MOVE POW-TRUE TO "Enabled" OF POW-SELF
  13.             MOVE POW-MP-DEFAULT TO "MousePointer" OF POW-SELF



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
  #4
Antiguo 12 de diciembre de 2015, 11:04
Recato53
Patrocinador del Foro
Última Actividad 19.07.2025 12:10
Posts Posts: 79
Likes enviados Enviados: 72
Likes recibidos Recibidos: 11

Gracias por vuestra ayuda.

Sigue quedando el formulario en la barra de tareas.
Recato53 is offline   Responder Con Cita
  #5
Antiguo 12 de diciembre de 2015, 14:14
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Recato53, ejecuta otra cosa en lugar el RM, la calculadora de Windows por ejemplo y dinos si te pasa lo mismo o no.



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
  #6
Antiguo 12 de diciembre de 2015, 19:56
Recato53
Patrocinador del Foro
Última Actividad 19.07.2025 12:10
Posts Posts: 79
Likes enviados Enviados: 72
Likes recibidos Recibidos: 11

Si ejecuto la calculadora de Windows, ocurre lo mismo.
Cuando cierro la calculadora, el Formulario se queda en la barra de tareas.
Recato53 is offline   Responder Con Cita
  #7
Antiguo 12 de diciembre de 2015, 21:47
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Recato53, efectivamente pasa esto con "ExecuteSync", en el caso de deshabilitar el Form. Es decir, si no haces

Código COBOL:
  1.      MOVE POW-FALSE TO "Enabled" OF POW-SELF

El Form se queda en su sitio.

Debe ser un pequeño bug en el Run-Time de Fujitsu.



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
  #8
Antiguo 14 de diciembre de 2015, 01:41
Dasije
Forero Senior
Última Actividad 06.03.2022 17:04
Posts Posts: 173
Likes enviados Enviados: 1
Likes recibidos Recibidos: 79

Puedes utilizar la api de windows, para activar formularios, recoges el handle y después llamas a esta api y la activas.

Creo que es el SetActiveWindow.

Saludos.
Dasije is offline   Responder Con Cita
  #9
Antiguo 15 de diciembre de 2015, 00:09
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

No foro cocina del foro Powercobol+winapi está lá um exemplo de
"Bring Window to Top (By Name) "

Pode ser que te resolva o problema,

Un saludo,
Rui Pinto
Rapinto is offline   Responder Con Cita
  #10
Antiguo 19 de diciembre de 2015, 21:22
Recato53
Patrocinador del Foro
Última Actividad 19.07.2025 12:10
Posts Posts: 79
Likes enviados Enviados: 72
Likes recibidos Recibidos: 11

Citación del post de Rapinto Ver Mensaje
No foro cocina del foro Powercobol+winapi está lá um exemplo de
"Bring Window to Top (By Name) "

Pode ser que te resolva o problema,

Un saludo,
Rui Pinto
He probado la rutina, pero al compilar en PWC 9, se producen varios errores.

error LNK2001: unresolved external symbol _SETFOREGROUNDWINDOW@4
error LNK2001: unresolved external symbol _SLEEP@4
error LNK2001: unresolved external symbol _FINDWINDOWA@8

Hay que añadir algo en el programa.
Estoy creando una dll, es correcto.

La LINKAGE en powercobol no se usa. La variables las defino como GLOBALEXTERNAL y paso los valores de una dll a otra.
Recato53 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 15:39.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.