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 25-09-2007
kwanbis kwanbis is offline
Registrado
 
Registrado: ene 2006
Posts: 5
Poder: 0
kwanbis Va por buen camino
Simple: TPanel heredado que cambia de color con click.

Hola. Pregunta simple. Supongamos que quisiera hacer un TPanel heredado que cuando le hago click, cambia su color al azar. Como seria el codigo?
Responder Con Cita
  #2  
Antiguo 25-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Por favor, revisa la guía de estilo de estos foros. Está bien solicitar ayuda y aquí hay gente que tal vez pueda echarte un cable, pero, tal como lo expones... estás pidiendo que te hagan el trabajo. Todo el trabajo. Y esto no está bien, ¿no? Si dijeras que estás intentando esto o lo otro pero que no te sale por X motivo... sería otra cosa, en mi opinión, al menos.

PD. De pregunta simple nada... hay ahí algunas cuestiones que pueden llevar bastante tiempo y trabajo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 25-09-2007
kwanbis kwanbis is offline
Registrado
 
Registrado: ene 2006
Posts: 5
Poder: 0
kwanbis Va por buen camino
hola dec, como estas? la verdad que supongo que es bastante facil el tema, de hecho tengo este codigo:

TPanelHost = class(TPanel)
private
public
end;

pero no se como se hace el resto, por eso lo pregunto.

Si hago asi:

TPanelHost = class(TPanel)
private
public
procedure Clicked;
end;

no se como lo resuelvo despues.

pense en algo tipo

Procedure TPanelHost.Clicked;
begin
TPanelHost.Color := random
end;

Pero no estoy seguro, por que despues tendria que llamar al "onclick" event, y asociarlo con el evento TPanelHost.Click, y lo que yo quiero es, si posible, que quede ya implicito en el codigo.

No estoy pidiendo que me hagan un programa, por eso supuse que asi estaria bien.

Última edición por kwanbis fecha: 25-09-2007 a las 22:53:02.
Responder Con Cita
  #4  
Antiguo 25-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Acá va el código, porque a veces un ejemplo sirve para entender como se hace y no tener que pedir que otros te escriban el código, y sin que sirva de precedente

Código Delphi [-]
unit HostPanel;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls,Graphics;

type
  THostPanel = class(TPanel)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    procedure Click;override;
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [THostPanel]);
end;

procedure THostPanel.Click;
begin
  inherited Click;
  self.Color:=Random($7FFFFFFF);
  Repaint;
end;

end.
Responder Con Cita
  #5  
Antiguo 25-09-2007
kwanbis kwanbis is offline
Registrado
 
Registrado: ene 2006
Posts: 5
Poder: 0
kwanbis Va por buen camino
Gracias paldave.

Ahora, y me parece que a lo mejor mi duda viene de alguna confusion de no usar delphi hace muchos años, yo tengo que entonces definir el evento OnClick y apuntarlo a Click? O asi solo al clickear me cambiaria el color?
Responder Con Cita
  #6  
Antiguo 25-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Así ya funciona.
También podrías campturar el evento OnClick así:
Código Delphi [-]
unit HostPanel;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls,Graphics;

type
  THostPanel = class(TPanel)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    procedure EventoClick(Sender:TObject);
    constructor Create(AOwner:TComponent);override;
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [THostPanel]);
end;

constructor THostPanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  self.OnClick := EventoClick;
end;

procedure THostPanel.EventoClick(Sender: TObject);
begin
  self.Color:=Random($7FFFFFFF);
  Repaint;
end;

end.
pero me parece más complicado.
Responder Con Cita
  #7  
Antiguo 25-09-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Ya hiciste la prueba?

No hay nada mejor que probar el código para que entiendas que es lo que hace y como funciona...


Saludos...
Responder Con Cita
  #8  
Antiguo 25-09-2007
kwanbis kwanbis is offline
Registrado
 
Registrado: ene 2006
Posts: 5
Poder: 0
kwanbis Va por buen camino
Cita:
Empezado por paldave Ver Mensaje
Así ya funciona.
También podrías campturar el evento OnClick así ... pero me parece más complicado.
excelente, gracias. En realidad yo hacia algo similar al segundo ejemplo, pero si, el primero es mucho mas simple. Gracias
Responder Con Cita
  #9  
Antiguo 26-09-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Código Delphi [-]
constructor THostPanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  self.OnClick := EventoClick;
end;

Si me lo permitís, en este caso yo guardaría un apuntador al evento original;
Porque si desde el IDE programan ese evento, perderás el apuntador a tu código.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
Ocultamiento de método heredado supermilloriver OOP 4 22-03-2007 05:20:56
implmentar Articulo click..click..run Crash ASAPLTDA OOP 0 21-01-2006 16:16:08
Click...click. tap. RUN? Crash! Un mejor RAD mamcx Conexión con bases de datos 0 13-04-2005 20:45:35
Como cambia el color de texto de una www.dbgrid Patricio Conexión con bases de datos 0 17-12-2004 13:20:58
Poner color a un TPanel con XP manifest jollodel Gráficos 1 11-08-2004 12:11:23


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


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