Hola, para esto hay 2 soluciones (o más, pero no se me ocurren
)
1) Crear un descendiente de la clase del componente que quieres y sobreescribir el método en cuestión.
Código Delphi
[-]
type
tMiClaseHija = class(TClase_Padre);
...
protected
...
procedure DoClick; override;
...
end;
Esto implica que, si quieres asignar el mismo código al evento OnClick de objetos de distintas clases (TBitBtn y TButton), debes implementarlo en los descendientes que te crees de esas clases...
Y si tienes que modificar el código de ese evento, debes hacerlo en todas las clases descendientes que hayas creado.
2) Crear un evento "genérico" con
argumentos compatibles con el evento que deseas asignar, p.ej.:
Código Delphi
[-]procedure Mi_Manejador_de_EventoClick(Sender: TObject);
begin
....
....
end;
procedure TForm1.FormShow(Sender: TObject);
begin
....
MiBoton.OnClick := Mi_Manejador_de_Evento;
....
end;
Esta 2ª opción sirve para objetos de distintas clases, p. ej., para un TBitBtn y un TButton (ambos tienen el evento OnClick con el mismo argumento).
Y si tienes que modificar el código de ese evento, lo haces en un sólo sitio.
Depende de tus necesidades
Salu2.