Ver Mensaje Individual
  #3  
Antiguo 04-01-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Básicamente es la misma idea que ha comentado David, pero en lugar de hacerlo cada vez que ejecutas la tarea, lo que suelo hacer es quedarme con el evento antes de asignar mi procedimiento.

Es decir, donde hay esto:

Código Delphi [-]
  // Asignar el evento
  Lista.OnChange := ListaChange;

Hacer algo así:

Código Delphi [-]
  // Revisar si ya hay uno asignado
  if Assigned(Lista.OnChange) then begin
    OldChangeEvent := ListView.OnChange;
  end;
  // Asignar el evento
  Lista.OnChange := ListaChange;

De esta forma ya tienes un apuntador al evento antiguo, si es que estaba asignado.

Ahora al inicio o al final de tu procedimiento ListaChange, llamas al evento antiguo si está asignado

Código Delphi [-]
procedure ListaChange....
begin
  // Al inicio o al finalll
  if Assigned(OldChangeEvent) then begin
    OldChangeEvent(... 
  end;

  ...

end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita