FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Combobox se queda por debajo del Form
Buenos días a todos,
tengo un problema con un Combobox o con la forma en que estoy trabajando, les pongo en situación, tengo un programa de mensajería interna que cuando muestra un mensaje, se pone delante de todas las aplicaciones abiertas con la propiedad FormStyle:=FsStayOnTop. Ocurría en algunas ocasiones que el Form daba como un fogonazo y se quedaba detrás y no delante (cuando el usuario estaba usando otra aplicación), entonces puse un timer dentro del formulario para que cada 2 segundos volviera a llevar el formulario al frente. Lo que ocurre es que en el formulario tengo un combobox que al desplegarse se muestra pero que, en cuanto el formulario vuelve a ponerse en FsStayOnTop, la lista desplegada del combo queda oculta por el form y hay que volver a pulsar el desplegable para ver la consulta, he intentado repintarlo pero solo repinta el combo (que no se oculta nunca) pero no la lista desplegada. Alguien se le ocurre como arreglarlo. Gracias de antemano. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#2
|
||||
|
||||
Hola,
Tal vez el "Timer" no sea una buena idea. Incluso viniendo de ti. Al menos deberías controlar que el "Timer" no se ejecute una vez el usuario "esté" en el formulario. Pero como ves aquí pueden empezar más problemas. Por eso el "Timer" puede no ser una buena idea. Prueba con un método del formulario como "BringToFront" además del "style on top". Mira a ver primero sin usar esto último, sólo con el "BrigToFront". A lo mejor otro compañero también puede echarte una mano. Yo sólo venía a decir que el "Timer" no me parece una buena idea y que incluso puede ser el culpable de la "ocultación" de la lista... |
#3
|
||||
|
||||
Hola dec,
yo entendía que el bringtofront solo era para traer componentes al frente pero dentro de la misma aplicación, y lo que quiero es que se quede encima de todas las aplicaciones que se estén ejecutando en ese momento, de todas formas lo he probado y no funciona, ya suponía que el timer no es la mejor opción y es el que, al volver a poner el form on top, me deja detrás la lista desplegada del combo, solo la lista desplegada, no el combo en si, lo se porque si despliego la lista y una parte de ella queda fuera del formulario solo se tapa la parte que queda dentro del formulario y el resto se sigue viendo por detrás. En su día me di cuenta de que si la aplicación la ejecuto en local el form no fallaba y siempre se iba al frente, pero que al estar en red si que se queda en alguna ocasión por detrás de la aplicación activa. Por eso he puesto el timer, para refrescar el FsStayOnTop. Si se te ocurre algo más quedo a la espera. Gracias por tu tiempo y tu respuesta. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#4
|
||||
|
||||
Hola de nuevo,
¿existe alguna forma de saber si mi programa es el que está encima de todos los programas?, como windows sabe que programa es el que está activo en ese momento pues preguntarle cual es. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#5
|
||||
|
||||
Hola,
El propio formulario cuenta con un método "BrigToFront", pero ignoro si servirá o no de algo en tu caso. Respecto del "Timer"... prueba a no poner "on top" el formulario si este ya se encuetra "on top". Igual lo que dices de que se trata de una aplicación "en red" tenga algo que ver también. Prueba otra forma de avisar al usuario: había alguna función por ahí a modo de indicador para el icono de la aplicación en la barra de tareas, haciéndolo "parpadear"... para avisar al usuario. O bien otra forma de avisarlo como un "globo" en la bandeja del sistema o algo así. Yo probaría primero que nada a no estar ejecutando el "on top" en el "Timer" a cada intervalo del mismo... |
#6
|
||||
|
||||
Hola David,
en un principio se hacía parpadear la barra de herramientas, lo hacía la propia aplicación cuando se restauraba ya que la aplicación se encuentra en el area de notificaciones, pero no se enteraban de nada. tengo comprobado que, en mi empresa, o les das con los avisos en los morros o no los ven. Por eso te preguntaba de si hay alguna opción de saber si la aplicación ya está OnTop, es decir, está por encima de las demas, por lo menos haría la comprobación en el timer y no tendría que estar poniendolo en OnTop todo el rato. Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#7
|
||||
|
||||
Hola,
Yo me refiero sólo a comprobar que "FormStyle <> fsStayOnTop". Es decir, a poner "on top" el formulario una sóla vez, para tratar de evitar el problema. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Pasar campos de la tabla localidad a un combobox de el form paciente... | y_a_p | Varios | 20 | 16-01-2012 15:28:26 |
mdiChild que se ve por debajo | quimeras | Varios | 1 | 13-02-2009 10:26:04 |
combobox con form | arespremium | OOP | 3 | 14-08-2007 00:55:13 |
QRimage debajo lineas detall encima..? | kia | Impresión | 0 | 14-06-2006 20:14:54 |
Aplicacion por debajo de todas | Marcos | API de Windows | 1 | 21-12-2004 18:46:15 |
|