una vuelta mas de tuerca:
dado que lo único que necesitamos para asignar el evento es que le pasemos un "procedure of object" esto es, un método de un objeto en lugar de una función clásica, podemos hacer una clase dummy (que no haga nada) y para ahorrarnos la creación destrucción etc, hacer que el método sea un método de clase:
Código Delphi
[-]
Tdummy = class
class procedure MiEventoClick(sender:tobject);
end;
no pongo private ni public ni na porque los métodos de clase siempre son publicos.