La Web del Programador: Comunidad de Programadores
 
    Pregunta:  22141 - EJECUCION DE PROCESOS SINCRONOS
Autor:  María Isabel Ramírez Verástegui
Hola,
Deseo que se ejecute un archivo wav de manera repetitiva dentro de un loop. y a la vez mostrar una ventana de alarma con un boton que permita cancelar la reproducción de dicho wav en cualquier momento.

Al ejecutarlo se logra escuchar el sonido y se abre la ventana pero no pernite pulsar el boton
Puede alguien ayudarme ?
Gracias
María Isabel

  Respuesta:  Juan Mellado
Imagino que el código que estás utilizando es parecido al siguiente:

DO WHILE ib_Cancelar = FALSE
Ejecuta_Wav()
LOOP

Donde ib_Cancelar es una variable de instancia que se inicializa a FALSE en su declaración y se hace TRUE en el evento clicked del botón de la ventana.

El problema es que el evento clicked no se ejecuta nunca porque no tiene oportunidad de ello al estar ejecutándose continuamente el bucle.

Lo que debes hacer es llamar a la función Yield() después de la llamada a Ejecuta_Wav(). Esta función cede momentáneamente el control a Windows para que examine los mensajes que tiene pendiente y los ejecuta. Búscala en la ayuda de PowerBuilder.

Espero haberte ayudado.
Saludos, Juan