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.
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.
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
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Evento OnMouseOver
Á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.
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
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Evento OnMouseOver
Á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
> 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