PDA

Ver la Versión Completa : problema al usar FormStyle:=fsTayOnTop


Greco
30-11-2007, 00:48:58
Hola,
Estoy haciendo un mini reproductor de streamin, les explico primero las cosas que tengo en el form por si sirve como dato para localizar el problema.

Tengo en el form un Timage en el cual tengo seleccionada un dibujo que me sirve como fondo del form (por tema de apariencia), tengo unos cuantos controles, label, boton, etc, ademas el form lo tengo con BorderStyle:=bsNone para que no me muestre los bordes ni la barra de titulo.
Para poder mover el form utilizo un truco sacado de la pagina trucomania el cual me permite mover el form pulsando cualquier parte de éste.

Ahora, lo que el programa hace es, al presionar play se conecta a una radio on-line, en un label me muestra la carga del buffer y luego al conectar y sonar la musica, el label me muestra la info de la emisora on-line, si presiono el boton STOP logicamente la reproduccion se detiene y el label muestra una leyenda indicando que la reproduccion ha sido detenida.

Hasta ahi funciona todo bien, el problema viene cualdo quiero agregarle la opcion de que el usuario pueda seleccionar si quiere que el reproductor este siempre visible o no con lo cual mediante un menu pop-up le agregue dicha opcion:
Form1.FormStyle:=fsStayOnTop;

cuando selecciono esa opcion y el form pasa a estar visible siempre ya no me funciona correctamente el label1.

le explico mejor el problema, (espero no ser muy aburrido).

Si tengo seleccionada la opcion para que la ventana este siempre visible y ahora detengo la reproduccion (boton stop) me muestra en el label uno el mensaje que se ha detenido, hasta ahi todo bien, pero si vuelvo a presionar play ya no me muestra la info que esta cargando el bufer ni nada de lo que deberia mostrar, se queda con la leyenda que muestra cuando se presiona STOP.
No se a que se deba, si elimino la opcion para seleccionar que la ventana este siempre visible el programa me funciona sin ningun problema.

Ahora, para probar, puse el form por defecto en StayOnTop y me funciona todo bien asi que el problema es cuando selecciono dicho estado pero cuando ya se esta ejecutando el programa.

No se si sirva de dato pero estoy ocupando la libreria bass.dll para reproducir audio streaming y utilizando un codigo que venia en sus ejemplos.

Si alguien puede tener idea de lo que este pasando ojala me de una mano, si necesitan mayor detalles aqui estare para darlos, espero no haberme alargado en el post pero quise detallas bien como funciona y las proebas que he hecho.

Saludos

dec
30-11-2007, 02:12:50
Hola,

Ignoro la causa del problema, pero, prueba con la siguiente instrucción en lugar de con "StayOnTop" a ver si hay suertecilla...


// On top
SetWindowPos(HandleForm, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW);

// Normal
SetWindowPos(HandleForm, HWND_NOTOPMOST , 0, 0, 0, 0, SWP_SHOWWINDOW);