anchor.diff:        Childs[I].SetLeftF(Childs[I].fLeft + (aValue - fWidth) / 2);
   
     inherited;
  -end;
  -
  -
  -function TKMPanel.GetDrawRect: TKMRect;
  -var
  -  I: Integer;
  -begin
  -  //Consider DrawRect, as enlarged absRect with all its childs
  -  //Need to include all childs, because sometimes childs can lay out of Panel AbsRect (f.e. on TKMScrollPanel those are scroll bars
  -  Result := GetControlAbsRect;
  -  for I := 0 to ChildCount - 1 do
  -    KMRectIncludeRect(Result, Childs[I].GetControlAbsRect);
   end;
   
   
  
positive.code: function TKMControl.GetDrawRect: TKMRect;
  begin
    if fParent <> nil then
    begin
      Result := fParent.GetDrawRect;
      Result := KMClipRect(Result, AbsDrawLeft, AbsDrawTop, AbsDrawRight, AbsDrawBottom);
    end else
      Result := KMRect(AbsDrawLeft, AbsDrawTop, AbsDrawRight, AbsDrawBottom);
  end;
  
negative.code: end;
  
  
  procedure TKMPanel.Enlarge(aChild: TKMControl);
  begin
    if Self = nil then Exit;
  
    fLeft := Left + Min(0, aChild.Left);
    fTop := Top + Min(0, aChild.Top);
    fWidth := Width - Min(0, aChild.Left);
    fHeight := Height - Min(0, aChild.Top);
    fWidth := Width + Max(0, aChild.Right - Right);
    fHeight := Height + Max(0, aChild.Bottom - Bottom);
  
    fParent.Enlarge(Self);
  end;
  
  
  function TKMPanel.AddChild(aChild: TKMControl): Integer;
  begin
    if ChildCount >= Length(Childs) then
  