Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   evento click de un bitbtn creacion componente (https://www.clubdelphi.com/foros/showthread.php?t=24706)

satabel 31-08-2005 01:16:48

evento click de un bitbtn creacion componente
 
hola
estoy haciendo un componente heredado de tbitbtn pero no se como dentro del codigo agrego una instruccion cuando se haba click sobre este componente..

gracias

dec 31-08-2005 06:17:54

Hola,

Prepárale un método al componente que puedas asociar a su evento "OnClick". Dicho método (porque ha de pertenecer a un objeto, por ejemplo, el mismo que estás llevando a cabo) asígnaselo de este modo:

Código Delphi [-]
   var
     MiBoton: TBitBtn;
   begin
     MiBoton := TBitBtn.Create(Self);
     MiBoton.Parent := Self;
     MiBoton.OnClick := MetodoOnClick;
     {...}
Donde la declaración de "MetodoOnClick" ha de ser la siguiente:

Código Delphi [-]
   procedure TForm1.MetodoOnClick(Sender: TObject);
En este caso "MetodoOnClick" es un método de un formulario, pero, lo requerido es que pertenezca a un objeto, por cumplir con lo que precisa el evento "OnClick" del botón, que es de tipo "TNotifyEvent" y se declara así:

Código Delphi [-]
   TNotifyEvent = procedure(Sender: TObject) of object;
Quiere decirse que el método en cuestión puede pertenecer a un formulario (como en el ejemplo de más arriba) o, en fin, a un objeto, el cual puede ser perfectamente el que estás llevando a cabo.

Es probable que con un poco de código se entienda mejor (máxime cuando mis explicaciones pueden dejar que desear) y con este espero que pueda hacerse:

Código Delphi [-]
 type
   TMiBoton = class(TBitBtn)
   private
     procedure MetodoOnClick(Sender: TObject);
   public
     constructor Create(AOwner: TComponent); override;
   end;
 
 implementation
 
 { MiBoton }
 
 constructor TMiBoton.Create(AOwner: TComponent);
 begin
   inherited;
   {...}
   OnClick := MetodoOnClick;
   {...}
 end;
 
 procedure TMiBoton.MetodoOnClick(Sender: TObject);
 begin
   // Responde al evento "OnClick" de "TMiBoton"
 end;

roman 31-08-2005 14:44:53

Cita:

Empezado por satabel
no se como dentro del codigo agrego una instruccion cuando se haba click sobre este componente

Si te refieres al código del mismo componente lo que tienes que hacer es redefinir su método Click:


Código Delphi [-]
interface

type
  TExBitBtn = class(TBitBtn)
  public
    procedure Click; override;
  end;

implementation

procedure TExBitBtn.Click;
begin
  {
    Aquí tu código
  }
end;

end.

// Saludos

dec 31-08-2005 16:02:37

Hola,

Cita:

Empezado por roman
Si te refieres al código del mismo componente lo que tienes que hacer es redefinir su método Click:

Pensándolo mejor creo que has dado en el clavo roman. Y que yo me fui por los cerros de Úbeda...


La franja horaria es GMT +2. Ahora son las 19:28:31.

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