Ver Mensaje Individual
  #2  
Antiguo 06-04-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Reputación: 22
ixMike Va por buen camino
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);
Responder Con Cita