Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-08-2004
agustincs agustincs is offline
Miembro
 
Registrado: ago 2004
Posts: 32
Poder: 0
agustincs Va por buen camino
Question escribir en label al pasar por una imagen

pues resulta que estoy creando un programa, y en vez de usar los botones normales, he usado imagenes para darle una imagen un poco mas bonita. Para las acciones uso el evento onclick. Mi pregunta es: estaba intersado en que al pasar el raton por encima de cada una de las imagenes "boton" me apareciera en una esquina un pequeño texto explicando para que sirve esa opcion. Lo tenia pensado hacer con una label e ir cambiando su caption, pero me encuentro con 2 problemas: no se que evento es el que controla que el raton pase por la imagen para que en ese momento escriba el caption (prove con mouseup, mousedown.. etc.. pero ninguno de esos) y el otro es que aunque encuentre el evento, como hago para que una vez el raton deje de estar encima de la imagen, la caption la borre??

lo mas importante, que evento es el que controla que el puntero del raton esta pasando por encima de la imagen=?=

muchas gracias
Responder Con Cita
  #2  
Antiguo 21-08-2004
Shion Shion is offline
Miembro
 
Registrado: abr 2004
Posts: 23
Poder: 0
Shion Va por buen camino
Lightbulb

Holapara tu solucion hay un evento llamado OnMouseMove, pruebalo!!!
__________________
_______________________________________
En busca del conocimiento!
Responder Con Cita
  #3  
Antiguo 21-08-2004
Raptor Raptor is offline
No confirmado
 
Registrado: jul 2003
Ubicación: Santo Domingo R.D.
Posts: 105
Poder: 0
Raptor Va por buen camino
hola a todos

Que te pareces si utiliza propiedad hint, porque segun dice solo quiere explicacion de que hace tu "boton"

coloca el mensaje la propiedad Hint, y luego activa la Showhint ponla true
Responder Con Cita
  #4  
Antiguo 22-08-2004
agustincs agustincs is offline
Miembro
 
Registrado: ago 2004
Posts: 32
Poder: 0
agustincs Va por buen camino
gracias a los dos
la opcion hint no me sirve, ya que tengo avilitado un cuadrado especial para la ayuda y por tanto quiero que aparezca ahi.
el evento que me dijiste si me mouseonmove si me sirve, ahora solo tengo un pequeño problema. lo que hago es que en ese evento, indico que el caption de una etiqueta coja un texto. lo que me interesa sabes que como hacer para que al dejar de pasar el raton por encima el caption vuelva a estar en blanco. Es decir el funcionamiento seria el siguiente: pasa el raton por encima y el caption pone la explicacion, deja de estar el raton encima, el caption vuelve a estar en blanco
Responder Con Cita
  #5  
Antiguo 22-08-2004
Sirkius Sirkius is offline
Miembro
 
Registrado: jun 2004
Posts: 83
Poder: 20
Sirkius Va por buen camino
El TImage no tiene el evento OnMouseOut que te hubiese venido de perlas. Puedes intentar buscar algún control que lo implemente o a lo mejor Windows si que lanza ese evento, pero el control no lo tiene implementado... no sé, es cuestion de buscar...
Responder Con Cita
  #6  
Antiguo 22-08-2004
xeroq xeroq is offline
Registrado
 
Registrado: jul 2004
Posts: 8
Poder: 0
xeroq Va por buen camino
La solución es simple,limpias el Label en el OnMouseMove del resto de los controles,incluyendo la propia Forma (compartes el mismo evento)
Responder Con Cita
  #7  
Antiguo 23-08-2004
Sirkius Sirkius is offline
Miembro
 
Registrado: jun 2004
Posts: 83
Poder: 20
Sirkius Va por buen camino
Cita:
Empezado por xeroq
La solución es simple,limpias el Label en el OnMouseMove del resto de los controles,incluyendo la propia Forma (compartes el mismo evento)
Sí, pero es una solución muy cutre, reconocelo. Puedes pasar a otra aplicacion mediante ALT+TAB, volver y dejar el raton fuera del formulario, y todavia sigue el mensaje.
Responder Con Cita
  #8  
Antiguo 23-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por agustincs
la opcion hint no me sirve, ya que tengo avilitado un cuadrado especial para la ayuda y por tanto quiero que aparezca ahi.
No sé a qué te refieres exactamente con un "cuadrado especial" pero pienso que puedes lograr lo que deseas perfectamente con la propiedad Hint en lugar de complicarte la vida con OnMouseMove. Lo único que tienes que saber es cómo usar dicha propiedad.

La VCL de Delphi lleva un registro de por dónde va pasando el cursor del ratón y cada vez que pasa por un control genera el evento OnHint del objeto Application. En este evento tienes disponible la propiedad Application.Hint que contiene el Hint del control sobre el que estás. Si estás pasando sobre la imágen entonces Application.Hint contendrá el hint de la imagen. Al salir de la imagen, si el control al que llegas no tiene hint entonces Application.Hint estará vacío.

De esta forma, suponiendo que por "cuadrado especial" entiendes un label podrías poner el evento OnHint así:

Código Delphi [-]
Label1.Caption := Application.Hint;

El problema aquí será si usas la propiedad Hint para otros controles además de las imágenes pues entonces tu "cuadrado especial" mostrará también los hints de dichos controles. Esto puede ser lo que quieres pero en caso contrario puedes determinar en el evento OnHint si el control sobre el que estás es o no una imagen:

Código Delphi [-]
var
  Control: TControl;

begin
  Control := ControlAtPos(ScreenToClient(Mouse.CursorPos), true);
  if Control is TImage then
    Label1.Caption := Application.Hint
  else
    Label1.Caption := '';
end;

Lo que resta es saber cómo asignas este evento OnHint. En las últimas versiones de Delphi puedes usar el objeto TApplicationEvents (en la paleta Aditional) y asignar ahí el evento OnHint. En versiones anteriores tendrás que crear tú mismo un método de tu formulario:

Código Delphi [-]
procedure AppHint(Sender: TObject);

y asignarlo manualmente en el evento OnCreate:

Código Delphi [-]
Application.OnHint := AppHint;

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 14:30:35.


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