Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-11-2006
dany2006 dany2006 is offline
Miembro
 
Registrado: nov 2006
Posts: 18
Poder: 0
dany2006 Va por buen camino
Cambiar propiedades cuando quito el mouse

hola, necesito que se cambien algunas propiedades de los Shapes cuando quito el puntero del mouse, por ejemplo Pen->Whidth. Como me pueden ayudar a resolverlo. gracias.
Responder Con Cita
  #2  
Antiguo 12-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
¿Probaste con los eventos OnMouseEnter y OnMouseLeave de TShape?
Responder Con Cita
  #3  
Antiguo 12-11-2006
dany2006 dany2006 is offline
Miembro
 
Registrado: nov 2006
Posts: 18
Poder: 0
dany2006 Va por buen camino
eventos de TShape

En la lista de eventos de TShape no me figuran estos que mencionas. Estoy usando Borland Builder C++ 6
Responder Con Cita
  #4  
Antiguo 12-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Supongo que la versión que tu utilizas no dispone de ese evento. Pues no queda otro remedio que implementarlo "a mano". Para eso declaramos una variable en la que almacenaremos el ultimo Shape sobre el que se movió el ratón.

Algo así:
Código Delphi [-]
TForm1 = class(TForm)
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    OldShape: TShape; // <- La variable de la que hablaba
  public
    { Public declarations }
  end;

Ahora en el evento OnCreate del formulario nos aseguramos de que la variable toma el valor nil.
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  OldShape:= nil;
end;

Por ultimo solo tenemos que dirigir todos los eventos OnMouseMove de los TShape y el de los objetos que se encuentren por debajo de estos (Normalmente se tratara del formulario, pero puede que sea un panel o algo similar) al mismo procedimiento. Seria algo como esto:
Código Delphi [-]
procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if OldShape <> Sender then
  begin
    if OldShape <> nil then
    begin
      OldShape.Pen.Width:= 1;
    end;
    if (Sender is TShape) then
    begin
      OldShape:= TShape(Sender);
      OldShape.Pen.Width:= 5;
    end else
      OldShape:= nil;
  end;
end;

En el procedure anterior lo que hacemos es cambiar el pen del shape cada vez que el ratón entra o sale. Espero que te sirva, ya se que esta echo en delphi, pero no sera muy difícil traducirlo
Responder Con Cita
  #5  
Antiguo 14-11-2006
dany2006 dany2006 is offline
Miembro
 
Registrado: nov 2006
Posts: 18
Poder: 0
dany2006 Va por buen camino
Gracias!!!!!!!!!!

Muchas Gracias.
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
Cambiar propiedades de la barra de scroll dmr1974 Varios 2 18-06-2008 20:04:02
Cambiar la forma del apuntador del mouse sierraja Varios 9 17-10-2006 01:12:19
Cambiar Color de Tlabel con el Mouse c748a OOP 3 10-06-2005 01:53:13
cambiar el puntero del mouse en un proceso JODELSA Varios 2 06-01-2005 15:03:21
Detectar cuando entra y sale el mouse soul6301 Varios 3 14-08-2004 01:56:50


La franja horaria es GMT +2. Ahora son las 23:32:02.


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