Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-04-2005
JANDREGUE JANDREGUE is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA
Posts: 40
Poder: 0
JANDREGUE Va por buen camino
Question Ayudame con OnMouseMove

Hola amigos

Lo que necesito es que cada vez que el mouse roce un componente pueda robarme el valor del Hint de este componente y mandarlo a un Label destinado, lo he hecho, pero colocandole a cada componete en el evento OnMouseMove un codigo como el siguiente: Label1.caption:=Edit1.Hint...por Ej.

Lo que quiero es poder hacer un proceso Unico que reconozca el componente rozado por el mouse y capture el Hint; con el fin de ahorrar codigo y no repetir tanto lo mismo puesto que podria aplicar el proceso al evento de un solo componente y heredarlo en los demás...

Espero haberme hecho entender....gracias por la atencion espero me colaboren.
__________________
No hay metas imposibles... sólo barreras mentales.
Responder Con Cita
  #2  
Antiguo 09-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Código Delphi [-]
Application.OnHint := ventepaca;

procedure TForm1.ventepaca(Sender:Tobject);
begin
  Statusbar1.panels[0].simpletext := Hint;
end;

lo digo de memoria... igual me cuelo 3 pueblos, pero van los tiros por ahí.

byeee
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 09-04-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Thumbs up

LO que debes hacer es que todos llamen el mismo evento, despues debes analizar el Sender, que es un puntero al componente llamo al evento.
Podes ecribir algo asi:

Código:
  with Sender as TControl do
    Label1.Caption := Hint;
TControl es la clase del que derivan todos los componetes que tienen un Hint, asi que podes asociar cualquier componente que tenga Hint a este mismo evento (TButton, TEdit, etc).

Lo probe y funciona perfecto

Suerte
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 09-04-2005
JANDREGUE JANDREGUE is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA
Posts: 40
Poder: 0
JANDREGUE Va por buen camino
Thumbs up Gracias Crandel

Gracias Crandel era Justo lo que necesitaba....

Oye tu no sabes por ue los ComboBox no tienen OnMouseMove?
__________________
No hay metas imposibles... sólo barreras mentales.
Responder Con Cita
  #5  
Antiguo 09-04-2005
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
Cada vez que el mouse pasa por un control se genera el evento OnHint del objeto Application por lo que, como indicó Lepe, es el lugar más adecuado para lo que deseas en lugar de utilizar el evento OnMouseMove que podrías requerir para otros menesteres.

// Saludos
Responder Con Cita
  #6  
Antiguo 09-04-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Usar el evento OnHint, esta bien siempre y cuando quieras que se copia cuando se muetra el hint, con onMouseMove podes copiar el Hint aun cuando la propiedad ShowHint este en false. Depende de lo que necesites.

El tema de porque no aparece el evente OnMouseMove en el ComboBox, es simplemente porque no lo publicaron cuando hicieron el diseño del componente, porque no lo publicaron ... no lo se.

Pero podes solucionarlo facilmente diseñando un componente que derive de TCustomComboBox y lo publique.

Seria mejor que esto lo pongas en un hilo por separado porque es otra pregunta.

Suerte
__________________
[Crandel]
Responder Con Cita
  #7  
Antiguo 09-04-2005
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 Crandel
con onMouseMove podes copiar el Hint aun cuando la propiedad ShowHint este en false.
Lo mismo sucede con OnHint. Este evento se genera independientemente de la propiedad que mencionas. Dicha propiedad lo que controla es la aparición o no del rectángulo amarillo con el texto del hint cuando se pasa el mouse sobre el control.

// Saludos
Responder Con Cita
  #8  
Antiguo 09-04-2005
JANDREGUE JANDREGUE is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA
Posts: 40
Poder: 0
JANDREGUE Va por buen camino
Como Usar OnHint

Como uso el OnHint

donde debo colocar
Application.OnHint := ventepaca; por ej

gracias..
__________________
No hay metas imposibles... sólo barreras mentales.
Responder Con Cita
  #9  
Antiguo 09-04-2005
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
No sé qué versión de Delphi uses. En las últimas puedes encontrar la componente TApplicationEvents en la pestaña "Additional". Bastará que uses su evento OnHint.

Si no dispones de esa componente entonces sólo tienes que declarar el procedimiento en tu formulario tal como lo describe lepe:

Código Delphi [-]
type
  TForm1 = class(TForm)
  private
    procedure VentePaAca(Sender: TObject);
  end;

implementarlo como dice lepe y la asignación la puedes hacer por ejemplo en el evento OnCreate del formulario.

// Saludos
Responder Con Cita
Respuesta



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 09:57:32.


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