Declaraciones del tipo:
Código Delphi
[-]
type
Txxxxx = procedure(Parametros) of object;
Son tipo de evento. Por ejemplo:
Código Delphi
[-]
type
TNotifyEvent = procedure (Sender: TObject) of object;
Suelen ir acabadas de "event" en el nombre
Una vez declarada una variable de ese tipo puedes usarla así:
Código Delphi
[-]
type
TNotifyEvent = procedure (Sender: TObject) of object;
...
var
Evento: TNotifyEvent;
procedure Saluda(Sender: TObject);
begin
...
end;
....
procedure...
begin
...
Evento:=Saluda;
Evento;
...
end;
No sé si lo he explicado bien.
En un componente:
Código Delphi
[-]
type
TComponente = class(TComponent)
private
FMiEvento: TNotufyEvent;
...
published
property MiEvento: TNotifyEvent read FMiEvento write FMiEvento;
crearía el evento "MiEvento" que aparecería en el inspector de objetos (así, como detalle).
Salu2.
Añado: antes de llamar a un evento como un procedure, hay que asegurarse de que tiene algo asignado:
Código Delphi
[-]
If Assigned(MiEvento) then MiEvento(parametros);