Para definir eventos "personalizados":
Código Delphi
[-]
TMyEvent = procedure(Sender: TObject; var Recibido: Boolean) of object;
TMyClass = class(TObject)
private
FOnMyEvent: TMyEvent;
protegido
procedure DoMyEvent(var Recibido: Boolean);
public
procedure Recibir;
published
property OnMyEvent: TMyEvent
read FOnMyEvent
write FOnMyEvent;
end;
implementation
procedure TMyClass.DoMyEvent(var Recibido: Boolean);
begin
if Assigned(FOnMyEvent) then
FOnMyEvent(Self, Recibido)
end;
procedure TMyClass.Recibir;
var
Recibido: Boolean;
begin
DoMyEvent(Recibido);
if not Recibido then
raise Exception.Create('No se recibió')
end;
Luego en donde quieras usar tu clase nueva:
Código Delphi
[-]
TMyForm = class(TForm)
private
FMyClass: TMyClass;
procedure Recibir(Sender: TObject; var Recibido: Boolean);
public
procedure FormCreate(Sender: TObject);
end;
implementation
procedure TMyForm.FormCreate(Sender: TObject);
begin
FMyClass := TMyClass.Create;
FMyClass.OnMyEvent := Recibir;
end;
procedure TMyForm.Recibir(Sender: TObject; var Recibido: Boolean);
begin
Recibido := False
end;
Espero que sea esto lo que estabas buscando...
Saludos...