diff --git a/lcl/include/control.inc b/lcl/include/control.inc index a3bd05ee18..7346ed7633 100644 --- a/lcl/include/control.inc +++ b/lcl/include/control.inc @@ -2388,14 +2388,18 @@ var Kind: TAnchorKind; begin inherited Notification(AComponent, Operation); - if Operation = opRemove then begin - if AComponent = PopupMenu then PopupMenu := nil - else if AComponent = Action then Action := nil; + if Operation = opRemove then + begin + if AComponent = PopupMenu then + PopupMenu := nil + else + if AComponent = Action then + Action := nil; //debugln('TControl.Notification A ',DbgSName(Self),' ',DbgSName(AComponent)); - for Kind:=Low(TAnchorKind) to High(TAnchorKind) do begin - if (FAnchorSides[Kind]<>nil) and (FAnchorSides[Kind].Control=AComponent) - then - FAnchorSides[Kind].FControl:=nil; + for Kind := Low(TAnchorKind) to High(TAnchorKind) do + begin + if (FAnchorSides[Kind] <> nil) and (FAnchorSides[Kind].Control = AComponent) then + FAnchorSides[Kind].FControl := nil; end; end; end; diff --git a/lcl/include/wincontrol.inc b/lcl/include/wincontrol.inc index bb46d6cda2..364ed66bd6 100644 --- a/lcl/include/wincontrol.inc +++ b/lcl/include/wincontrol.inc @@ -5468,8 +5468,10 @@ begin ListRemove(FTabList, AControl); ListRemove(FWInControls, ACOntrol); end else - Listremove(FControls, AControl); - AControl.FParent := Nil; + ListRemove(FControls, AControl); + AControl.FParent := nil; + if AControl.FHostDockSite = Self then + AControl.FHostDockSite := nil; end; end;