FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Al mostrar Hint, desaparece ventana
Buenas,
es la segunda vez que escribo, y la primera he de decir que me sorprendió la rapidez en la respuesta... doy las gracias por ello. Esta vez, mi problema es algo extraño. Tengo un TLabel en un Form que es llamado desde el Form principal en modo No Modal. Pues bien, a este label le he puesto su propiedad Hint a True, ya que recorto el texto del label si sobrepasa una longitud y quiero que el usuario pueda ver todo el texto en el Hint. Pues la primera vez que paso el ratón por el label, muestra el Hint perfectamente. Pero a la segunda vez que le paso el ratón, la ventana desaparece, quedándose el Form Principal en el Foreground. Lo que no se es si se queda detrás del Form Principal o si se minimiza. Yo creo que se queda detrás. Es como si con el ratón hubiera clicado en alguna zona del Form Principal, y la ventana en la que estaba perdiera el foco (ya que no es Modal). Vamos, para que se entienda, es como si al pasar con el ratón por el Hint, dicha ventana se hiciera inocua y el evento OnMouseMove del Form Principal se activara (que por cierto, tengo código en dicho evento del Form Principal). Si alguien sabe a qué puede deberse este "extraño" comportamiento, estaría muy agradecido si lo compartiera conmigo. Muchas gracias, de antemano. |
#2
|
||||
|
||||
No me queda muy claro algunas cosas:
- ¿El form del label tiene código en el onMouseMove? He supuesto que NO, pero no lo dices explicitamente. - ¿El label o el form tiene otro código asociado? Hay una opcion en el panel de control de windows, para cambiar el foco simplemente pasando el raton a una ventana distinta, sin tener que hacer clic, ¿no lo tendrás activado no? Si tienes espacio en el form, podrías poner un Memo simulando el label con WordWrap a True y los scrollbars; o bien poner en autosize dicho Label. Un saludo |
#3
|
|||
|
|||
Me explico mejor...
La verdad es que el problema es tan extraño, que cuesta hasta explicarlo:
- El Form del Label no tiene ningún código en el OnMouseMove. De hecho, el label está dentro de un Frame, que es el que está en el Form. Pero tampoco tiene código en este evento. - El Label tiene un código asociado, pero no a un evento propio, sino que por código le asigno su Caption, recogiendo el texto de un campo de la base de datos. Si este campo está vacío, no muestro el label. Si contiene texto, le añado al Caption del Label dicho texto, pero comprobando que su longitud no sea superior a un número determinado (tengo el autosize, pero se "choca" con el correspondiente TEdit que tengo delante, es por lo que lo recorto). Si dicha longitud es superior, lo que hago es cortar por lo sano, y añadirle puntos suspensivos (supongo que habrá alguna manera de que esto se haga automáticamente, pero como no tengo mucho tiempo de andar buscando opté por hacerlo yo mismo, que tardé pocos minutos). Y por eso le copio todo el texto al Hint, y quiero que lo muestre. Una vez dicho esto, te comento, que lo de la opción del XP no la tengo activa, y aunque así fuera, no debería de cambiar de ventana, ya que "no me salgo de ella". Quiero decir, que al pasar con el mouse por el label y mostrar éste el Hint (el Hint tampoco invade la ventana que queda por detrás), es como si la ventana se ocultara detrás de la Principal (y por cierto, me he dado cuenta que la principal no se queda con el Foco, sino que está en primer plano, pero no activa... más leña al fuego, jejeje). Lo dicho... muy extraño. Y otra cosa, acabo de probar de minimizar el principal, y ya no desaparece... es decir, sólo pasa cuando tengo detrás el principal, lo que da a sospechar, que se activa el OnMouseMove del principal o algo parecido... pero, ¿por qué?. Hasta ahora!! |
#4
|
|||
|
|||
¿si pones en un zip el codigo fuente?
para compilarlo a ver si me paso lo mismo. |
#5
|
|||
|
|||
Gracias, pero...
Gracias, pero creo que perdería má tiempo en "recortar" los trozos de código para separarlos de la base de datos y hacer algo "ejecutable", que resolviéndolo...
Pero muchas gracias por tu interés. Más que nada lo expuse por si alguien tenía una idea de qué podía ser, o si era algo común causado por algún evento de una ventana padre, etc... . Lo dicho, gracias igualmente |
|
|
|