Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Reactivar onhint (https://www.clubdelphi.com/foros/showthread.php?t=29440)

rafa_adrim 22-01-2006 01:04:18

Reactivar onhint
 
Buenas,
como todos sabemos el onhint se dispara cuando se entra en un componente con el raton, el ratón se detiene y pasa cierto tiempo, configurable desde propiedades de Applicattion, y desapece cuando se mueve otra vez el raton o pasa otro tiempo también configurable.

Una vez el mensaje del onhint desaparece para que vuelva a aparecer se debe dejar de apuntar con el raton al componente y volver a apuntar a el, es decir se tiene que salir y volver a entrar con el raton para que el onhint se vuelva a reactivar.

Lo que necesito es que no haya la necesidad de tener que salir del componente sino que cuando me desplace dentro de un mismo componente a otro parte de el y el usuario vuelva a parar el ratón se vuelva a disparar el onhint una vez detras de otra.

Basicamente lo que necesito saber es como el onhint sabe que se ha disparado una vez para no volverse a disparar, sabiendo qual es esa propiedad sólo con engañarla y hacerle creer que aún no se ha disparado lo tendria solucionado, pero no he encontrado cual es esa propiedad.

Gracias.

dec 22-01-2006 15:34:49

Hola,

No sé si podrá servirte de algo.... la variable "Application" (de tipo "TApplication") proporciona un método de nombre "ActivateHint". Con él puedes mostrar el "Hint" de un determinado control, por ejemplo, utilizando el evento "OnMouseMove" de este, de tal modo que, prácticamente, el "Hint" de ese control se mantenga visible mientras el ratón esté sobre el mismo. Ya comentarás algo. ;)

rafa_adrim 23-01-2006 01:34:14

Buenas dec,

gracias por lo del metodo me ha ido de fabula.
Lo que si he detectado es que como en cada onmousemove envio a activehint a veces se queda pillado y el hint no aparece, pero bueno ya le explicaré al cliente que si le pasa mueva un poquito el ratón y entonces si sale :p

Lepe 23-01-2006 12:26:27

Si lo que quieres es un Hint permanente, que no se oculte:
Código Delphi [-]
Application.HideHintPause := 150000;

La propiedad la digo de memoria, hace tiempo que no la uso, pero creo que es así.

Puedes jugar con esa propiedad, y dependiendo del control, darle un valor más alto / bajo, de esa forma, unas veces se ocultará y otras no ;)

saludos

rafa_adrim 23-01-2006 16:14:27

El problema que tenia ya lo he encontrador.
Venia dado porque al Activatehint no le pasaba bien el Point, el parametro que pedia, lo que hay que hacer para que vaya bien es pasa como Point lo que retorna la funcion GetCursorPos().

Ahora funciona perfecto.

Thanks.

Lepe 24-01-2006 16:22:57

o quizás usar ClientToScreen para cambiar las coordenadas de un control (que son relativas a su padre) a coordenadas de pantalla.

saludos


La franja horaria es GMT +2. Ahora son las 01:29:45.

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