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 29-01-2007
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 21
Angel Fernández Va por buen camino
¿Cómo saber qué panel contiene a un Tlabel?

Saludos al foro.

Estoy intentando hacer varios paneles que al pasar por encima el ratón, cambie el color de fondo y cuando ya ha pasado vuelva el color blanco original. Esto sé cómo hacerlo:

Código Delphi [-]
procedure TForm1.colorentrada(sender: TObject);
begin
  if (sender is TPanel) then
    TPanel(sender).color := $0067E0FF;
end;

procedure TForm1.colorsalida(sender: TObject);
begin
  if (sender is TPanel) then
    TPanel(sender).color := clwhite;
end;

procedure TForm1.Panel7MouseLeave(Sender: TObject);
begin
 colorsalida(sender);
end;

procedure TForm1.Panel7MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 colorentrada(sender);
end;
Ahora bien, cada panel tiene dentro varios tlabel (con la propiedad transparent=true) y quiero que al pasar el raton por encima también cambie el color de fondo del panel que contiene a dicho label. Y aquí viene mi pregunta: ¿cómo puedo saber, de forma global, qué panel contiene a dicho tlabel?

Obviamente, puedo ir editando label a label los eventos onmousemove y onmouseleave, pero con muchos paneles esto sería aburridísimo.

Espero haberme expresado bien.

Un saludo.

PD: No me aclaro con lo de resaltar sintaxis para delphi. Si previsualizo el mensaje y luego lo edito, el texto de delphi se vuelve loco ¿cómo se hace?
Responder Con Cita
  #2  
Antiguo 29-01-2007
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
Prueba con la propiedad Parent del TLabel
Responder Con Cita
  #3  
Antiguo 29-01-2007
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 21
Angel Fernández Va por buen camino
No puedo con Parent cambiar el color

Estoy intentado hacer
Código Delphi [-]
Tlabel(sender).parent.color:=blabla;

Pero parent no tiene una propiedad color.

¿Cómo lo uso?

Gracias por tu respuesta
Responder Con Cita
  #4  
Antiguo 29-01-2007
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
Cita:
Empezado por Angel Fernández
¿Cómo lo uso?
Pues haciendo un typecast como hiciste en el caso del Sender. Es decir:
Código Delphi [-]
  TPanel(TLabel(Sender).Parent).Color:= clRed;

Aunque no estaría mal, que hicieras un par de comprobaciones antes:
Código Delphi [-]
  if Sender is TLabel then
    if TLabel(Sender).Parent is TPanel then
      TPanel(TLabel(Sender).Parent).Color:= clRed;
Responder Con Cita
  #5  
Antiguo 29-01-2007
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 21
Angel Fernández Va por buen camino
Gracias seoane.

Funciona perfectamente lo que me has dicho. Supongo que es bastante fácil, pero no soy programador.

Muchas gracias.
Un saludo.
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
Saber si un arreglo contiene datos lucasarts_18 PHP 7 27-12-2006 18:16:40
un TLabel como Hipervínculo zuriel_zrf Internet 9 06-01-2006 22:11:49
tlabel como Centrar ? Pascual Montes Varios 4 11-06-2005 02:53:33


La franja horaria es GMT +2. Ahora son las 19:45:15.


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