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
[Compilador] Error JMW0005I-U al ejecutar un programa Begoguay PowerCOBOL (ActiveX, v4 - v11) 3 13 de febrero de 2024 11:09
FUNCTION RANDOM siempre devuelve el mismo valor Zzebastian GnuCOBOL (OpenCOBOL) 5 7 de enero de 2024 20:49
[Sintaxis] CALL en OPENCOBOLIDE 4.7.6 da error (no encuentra) etilico2022 IDE-s para GnuCOBOL 17 31 de julio de 2023 20:53
[Sintaxis] Consulta sobre Function Key drvedia1981 PowerCOBOL (ActiveX, v4 - v11) 5 11 de mayo de 2022 19:53
[Duda] Call "CFURCOV" System error occurred. code = 0x25 dmosca PowerCOBOL (ActiveX, v4 - v11) 19 6 de agosto de 2019 15:29

Respuesta

  #1
Antiguo 10 de julio de 2018, 18:48
Begoguay
Forero
Última Actividad 21.08.2025 16:34
Posts Posts: 69
Likes enviados Enviados: 93
Likes recibidos Recibidos: 10
Predeterminado Error en programa: Illegal function call
0 Inactivo Inactivo

Hola foreros.

Mi problema es el siguiente:

En los programas que hago pongo la propiedad 'Enabled' de los controles que utilizo como POW-TRUE o POW-FALSE, dependiendo de si quiero que el usuario modifique en ese momento el valor del control o no. Por ejemplo, en un mantenimiento de un fichero, si no se pulsa el botón de 'Editar' no quiero que acceda a ningún campo del fichero.
También tengo indicado en el evento 'PreKeyDown' del formulario, que cuando se pulse 'ESC', según si está en modo edición o no, acceda a unos controles u otros.
Pero me pasa que, solo a veces en algunos programas, cuando va a 'Enablar' o 'Desenablar' un control se me pierde el foco y me da el error 'Illegal function call'. Y aunque haga un 'SetFocus' a un control que anteriormente le he puesto POW-TRUE en su propiedad 'Enabled', no va a dicho control, y el foco se sitúa en otro control (es decir, donde le da la gana).
No se si alguien me puede dar una pista de por qué me puede ocurrir esto.

Un saludo.
Begoguay is offline   Responder Con Cita
  #2
Antiguo 10 de julio de 2018, 21:22
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Begoguay, esto ocurre porque el orden de ejecución de las rutinas GUI no siempre corresponde con el orden de su lanzamiento.

Este error suele darse cuando justamente hacemos SetFocus sobre un control que en el momento lo tiene en estado Disabled.

Para evitar este tipo de problemas, usa el método ThruEvents antes de hacer SetFocus:

Código COBOL:
  1.      INVOKE POW-SELF "ThruEvents"

Dicho método asegurará la espera necesaria para que todas la rutinas GUI se ejecuten antes de la siguiente línea de código, que en nuestro caso es el SetFocus.



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 11 de julio de 2018, 09:18
Begoguay
Forero
Última Actividad 21.08.2025 16:34
Posts Posts: 69
Likes enviados Enviados: 93
Likes recibidos Recibidos: 10

Hola.

Lo estoy probando, poniendo delante de cada SetFocus el evento ThruEvents y sigue sin funcionar

La única forma de arreglarlo es dejar activos los controles a los que va (sin que yo se lo diga) y en su evento GotFocus controlar que deje o no modificar ese control según si quiero que esté activo o no.
Begoguay is offline   Responder Con Cita
  #4
Antiguo 11 de julio de 2018, 19:41
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Begoguay, eso es que se te está escapando algo. Jugando con GetFocus y SetFocus, como decía, el orden de ejecución no está garantizado. Revísalo, yo lo resolví con el ThruEvents.



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


Herramientas

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 16:23.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.