Hola:
Lo acabo de volver a mirar y la cosa no es tan fácil. Pensaba que se podría pegar alegremente todo el código de PictureChanged a MiPictureChanged pero no es así por culpa de unas variables privadas (FPictureLoaded y FDataLink) que no podemos alterar.
Bueeeno, se me ocurre algo quizás estrambótico: teniendo en cuenta que al asignar el evento MiPictureChanged al Picture (
Picture.OnChange := MiPictureChanged;), dicha asignación ya está hecha en el constructor Create heredado, podríamos almacenar la referencia al método asignado en una variable del tipo TNotifyEvent:
Código Delphi
[-]
FAnteriorNotify : TNotifyEvent;
FCambiando : Boolean;
constructor TMiDBImage.Create;
begin
inherited Create;
...
FAnteriorNotify := Picture.OnChange;
Picture.OnChange := MiPictureChanged;
...
end;
procedure TMiDBImage.MiPictureChanged;
begin
if FCambiando then EXIT;
FCambiando := TRUE;
try
Picture.Bitmap.TransparentColor:=FTransparentColor;
...
...
FAnteriorNotify(Picture);
finally
FCambiando := FALSE;
end;
end;
No sé si esto servirá ...
Saludos