In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Evento OnMouseOver

Foro de Xailer profesional en español
Responder
Angel
Mensajes: 135
Registrado: Mié Mar 21, 2007 1:11 pm

Evento OnMouseOver

Mensaje por Angel »

Saludos! Este es mi primer mensaje en el foro privado de Xailer.
La cuestión:
Estoy utilizando en mi aplicación botones de la clase TBtnBmp, y
intentaba que cuando el cursor pase por encima de dichos botones, poder
realizar "cambios" sobre ellos (Ej: Resaltar el color, cambiar el BMP,
etcétera).
¿Este evento no está presente en las clases de Xailer? El evento más
parecido que he encontrado ha sido OnMouseMove.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Evento OnMouseOver

Mensaje por ignacio »

Ángel,
Efectivamente, ese es el evento a capturar.
Un saludo,
"Ángel Fernández" <angel@agelso.com> escribió en el mensaje
news:465d725c$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Saludos! Este es mi primer mensaje en el foro privado de Xailer.
>
> La cuestión:
> Estoy utilizando en mi aplicación botones de la clase TBtnBmp, y intentaba
> que cuando el cursor pase por encima de dichos botones, poder realizar
> "cambios" sobre ellos (Ej: Resaltar el color, cambiar el BMP, etcétera).
>
> ¿Este evento no está presente en las clases de Xailer? El evento más
> parecido que he encontrado ha sido OnMouseMove.
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Evento OnMouseOver

Mensaje por jfgimenez »

Ángel,
> Estoy utilizando en mi aplicación botones de la clase TBtnBmp, y intentaba
> que cuando el cursor pase por encima de dichos botones, poder realizar
> "cambios" sobre ellos (Ej: Resaltar el color, cambiar el BMP, etcétera).
Para cambiar el bitmap no necesitas hacer nada especial; basta con asignar
el bitmap que quieras al estado 'hot' del botón (el segundo bitmap que
aparece al pulsar en la propiedad 'oBitmaps' del control en el inspector de
objetos).
Pero lo de resaltar el color... me temo que los botones tienen el color de
fondo que tienen, y no se puede cambiar. Y si además estás en XP con temas,
entonces no puedes cambiar ni el color del texto.
> ¿Este evento no está presente en las clases de Xailer? El evento más
> parecido que he encontrado ha sido OnMouseMove.
Sí, es el más parecido, pero no funciona como creo que estás pensando.
OnMouseMove se dispara cuando el cursor se mueve sobre el control, pero no
puedes saber cuando el cursor abandona el área que cubre el control para
p.ej. volver a un estado de reposo. Y me temo que no hay ningún evento del
tipo OnMouseLeave simplemente porque el API no lo contempla.
Para controlar esta situación, hay que 'capturar' el ratón llamando a
SetCapture(). Pero si utilizas esta función con controles que gestionan
ellos mismos su estado 'hot', como es el caso, vas a tener problemas. En
casos así, es mejor crear un control desde cero y dotarlo de la
funcionalidad que se desee procurando no interferir con el comportamiento
estándar de su clase padre.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder