--- ---
You solve this by using a custom event to which you can attach a form method as needed:
type TMyComp = class( TCustomControl ) {or TGraphicsControl} private FAfterPaint: TNotifyEvent; {may use custom event type} protected procedure Paint; override; procedure DoAfterPaint; virtual; published property AfterPaint: TNotifyEvent read FAfterPaint write FAfterPaint; end; procedure TMyComp.Paint; begin inherited; DoAfterPaint; end; procedure TMyComp.DoAfterPaint; begin if assigned( FAfterpaint ) and NeedsCustomPaint then FAfterPaint(self); end;