Código:
interface
type
TMiEventoDeLaMuerte = procedure (Sender: TObject; const ValorQueTeDoy Integer; var ValorQueTeDejoModificar Integer) of object;
TMiObjetoTerrible = class
private
FOnCambioEnorme: TMiEventoDeLaMuerte;
public
property OnCambioEnorme: TMiEventoDeLaMuerte read FOnCambioEnorme write FOnCambioEnorme;
end;
TPadre = class(TComponent)
private
FMiObjetoTerrible : TMiObjetoTerrible;
procedure MiObjetoTerribleEvento(Sender: TObject; const ValorQueTeDoy : Integer; var ValorQueTeDejoModificar : Integer);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
constructor TPadre.Create(AOwner: TComponent);
begin
inherited;
FMiObjetoTerrible := TMiObjetoTerrible.Create;
FMiObjetoTerrible.OnCambioEnorme := MiObjetoTerribleEvento;
end;
destructor TPadre.Destroy;
begin
FMiObjetoTerrible.Free;
inherited;
end;
procedure TPadre.MiObjetoTerribleEvento(Sender: TObject;
const ValorQueTeDoy: Integer; var ValorQueTeDejoModificar: Integer);
begin
// Aquí accedo al evento!!
end;