TMyControl = class(TCustomControl) private procedure OnParentResizeHandler(Sender: TObject); protected procedure SetParent(NewParent: TWinControl); override; public ... end; procedure TMyControl.OnParentResizeHandler(Sender: TObject); begin Debugln('%s.OnParentResizeHandler PWith[%d]', [Name, Parent.ClientWidth]); end; procedure TMyControl.SetParent(NewParent: TWinControl); var vOldParent: TWinControl; begin vOldParent := Parent; inherited SetParent(NewParent); if Parent <> vOldParent then begin if assigned(vOldParent) then vOldParent.RemoveHandlerOnResize(@OnParentResizeHandler); if assigned(Parent) then Parent.AddHandlerOnResize(@OnParentResizeHandler, False); end; end;