Erstens gibt es schon einen Typ für den Event (man beachte in desse Deklaration das
of object) und zweitens lässt du bei der Zuweisung dann besser das @ weg:
Delphi-Quellcode:
private
FInitialOnMouseDown: TMouseEvent;
...
if Assigned(FPaintBox.OnMouseDown) then
FInitialOnMouseDown := FPaintBox.OnMouseDown;
FPaintBox.OnMouseDown := OnPaintBoxMouseDown;