Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2009
ElDuc ElDuc is offline
Miembro
 
Registrado: jul 2004
Posts: 197
Poder: 20
ElDuc Va por buen camino
Presencia del mouse sobre un objeto

Hola otra vez chicos/as

¿Alguien sabe como puedo saber cuando el mouse pasa por encima de un objeto?

Me refiero a saber cuandro entra y sale, no el clikck.
Responder Con Cita
  #2  
Antiguo 12-02-2009
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Por objeto supongo que dirás un control, como un botón digamos.

El evento OnMouseMove se dispara cuando el mouse para por arriba de un control.

Si intuyo bien, lo que te pasa es que no podés saber cuándo el mouse se te fue de arriba del control... El truco que yo he hecho varias veces (y que es bastante simple, pero molesto) es crear una nueva clase y agregarle estos dos métodos.

Código Delphi [-]
uses ... Messages...;

type TMiBoton=class(TButton)
  procedure CMMouseEnter(var Msg: TMessage); message CM_MouseEnter;
  procedure CMMouseLeave(var Msg: TMessage); message CM_MouseLeave;
end;

procedure TMiBoton.CMMouseEnter(var Msg: TMessage); message CM_MouseEnter;
begin
end;

procedure TMiBoton.CMMouseLeave(var Msg: TMessage); message CM_MouseLeave;
begin
end;

Y después crear el botón "a mano" y no ponerlo con el editor visual... Lamentablemente, si hay otra manera, no la conozco.

Espero te sirva de algo. Saludongos.
Responder Con Cita
  #3  
Antiguo 13-02-2009
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
Una manera de evitar la instalación de un nuevo componente es nombrando la nueva clase igual que su ancestro. Siguiendo el ejemplo de Delfos:

Código Delphi [-]
type
  TButton=class(StdCtrls.TButton)
    procedure CMMouseEnter(var Msg: TMessage); message CM_MouseEnter;
    procedure CMMouseLeave(var Msg: TMessage); message CM_MouseLeave;
  end;

procedure TButton.CMMouseEnter(var Msg: TMessage); message CM_MouseEnter;
begin
end;

procedure TButton.CMMouseLeave(var Msg: TMessage); message CM_MouseLeave;
begin
end;

Si se coloca la declaración del tipo antes de la del formulario donde se quiera usar el botón, entonces puede insertarse éste visualmente como siempre en el formulario, y responderá a los nuevos mensajes CMMouseEnter y CMMouseLeave.

// Saludos
Responder Con Cita
  #4  
Antiguo 14-02-2009
ElDuc ElDuc is offline
Miembro
 
Registrado: jul 2004
Posts: 197
Poder: 20
ElDuc Va por buen camino
Muchas gracias a los dos.

Voy a probarlo.
Responder Con Cita
  #5  
Antiguo 16-02-2009
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
¡Ah! ¡Qué trucazo ese! Gracias román...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Líneas Guías sobre el Puntero del Mouse eddg Varios 8 10-10-2007 12:19:57
Hook en presencia de "Conexión a Escritorio remoto" aeff API de Windows 1 25-03-2007 21:46:59
Control de presencia con Ubuntu y bluetooth Casimiro Notevi Noticias 6 21-03-2007 22:15:14
En que objeto está parado el mouse? Chelo Varios 7 10-08-2004 10:18:14
mouse AngelMarvin Windows 2 20-07-2004 07:16:35


La franja horaria es GMT +2. Ahora son las 11:43:01.


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