Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2014
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 18-06-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 18-06-2014
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 18-06-2014
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
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.
Responder Con Cita
  #5  
Antiguo 18-06-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 18-06-2014
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 18-06-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 19-06-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.461
Poder: 20
newtron Va camino a la fama
Hola.

Aunque no es el mismo asunto que comentas hace algún tiempo me estuve peleando con la posición de los formularios y en este hilo con la ayuda de los colegas conseguí darle una solución. Si quieres echale un vistazo por si te sirve de algo.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #9  
Antiguo 19-06-2014
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola, lo primero gracias por su tiempo.

He probado la opción que venía en el hilo que me comentabas newtron pero no se si lo he hecho mal porque el formulario se queda detrás de otras aplicaciones y yo lo que quiero es que siempre esté delante de todo.

David, cuando yo mostraba el mensaje correspondiente el formulario lo ponía con FsStayOnTop, no tenía timer, pero había veces que no aparecía On Top por lo que el tiparraco de turno no se enteraba de que le había llegado mensaje alguno, por eso el otro día le añadí el timer, para que, aunque ya estaba On Top, lo volviera a poner On Top, así conseguía que se quedara siempre encima de las demás aplicaciones, sino lo hago así aunque este puesto FsStayOnTop, en cuanto pulso otra aplicación se va hacia atrás.

Al final lo he resulto desactivando el timer cuando hago del dropdown del combo y volviendolo a activar cuando hago click en uno de los items. De esta forma no me vuelve a traer al frente el formulario cuando estoy seleccionando una opción del combo y no tapa la lista desplegada.

Gracias de nuevo a los dos.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #10  
Antiguo 19-06-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Me alegro de que dieras con una solución.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 19-06-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.461
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por ElDioni Ver Mensaje
Hola, lo primero gracias por su tiempo.

He probado la opción que venía en el hilo que me comentabas newtron pero no se si lo he hecho mal porque el formulario se queda detrás de otras aplicaciones y yo lo que quiero es que siempre esté delante de todo.
Claro... eso es lo que yo quería pero igual que en mi caso se queda detrás de todos imagino que cambiando algún parámetro se quedará al frente de todo, por eso imaginaba que podría servirte. Pero nada, si lo has solucionado estupendo.
__________________
Be water my friend.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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 14:28:26
mdiChild que se ve por debajo quimeras Varios 1 13-02-2009 09:26:04
combobox con form arespremium OOP 3 13-08-2007 23:55:13
QRimage debajo lineas detall encima..? kia Impresión 0 14-06-2006 19:14:54
Aplicacion por debajo de todas Marcos API de Windows 1 21-12-2004 17:46:15


La franja horaria es GMT +2. Ahora son las 17:12:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi