anchor.diff:  
   procedure TfpgSpinEdit.EnableButtons;
   begin
  -  if not IsMaxLimitReached then
  -    FButtonUp.Enabled := True
  +  FButtonUp.Enabled := True;
  +  FButtonDown.Enabled := True;
  +  if IsMaxLimitReached then
  +    FButtonUp.Enabled := False
     else
  -  begin
  -//    FButtonUp.Enabled := False;
  -    FUp := False;
  -    if Assigned(FTimer) then
  -      FTimer.Enabled := False;
  -  end;
  -  if not IsMinLimitReached then
  -    FButtonDown.Enabled := True
  -  else
  -  begin
  -//    FButtonDown.Enabled := False;
  -    FDown := False;
  -    if Assigned(FTimer) then
  -      FTimer.Enabled := False;
  -  end;
  +    if IsMinLimitReached then
  +      FButtonDown.Enabled := False;
   end;
   
   function TfpgSpinEdit.IsMinLimitReached: Boolean;
   begin
  -  Result := Value = MinValue;
  +  Result := FValue = FMinValue;
   end;
   
   function TfpgSpinEdit.IsMaxLimitReached: Boolean;
   begin
  -  Result:= Value = MaxValue;
  +  Result:= FValue = FMaxValue;
   end;
   
   function TfpgSpinEdit.GetEditBackgroundColor: TfpgColor;
  
positive.code:       FValue      := FMaxValue;
        FEdit.Value := FValue;
      end;
      EnableButtons;
    end;
  end;
  
  
negative.code: 
  procedure TfpgSpinEditFloat.EnableButtons;
  begin
    FButtonUp.Enabled := True;
    FButtonDown.Enabled := True;
    if IsMaxLimitReached then
      FButtonUp.Enabled := False
    else
      if IsMinLimitReached then
        FButtonDown.Enabled := False;
  end;
  
  function TfpgSpinEditFloat.IsMinLimitReached: Boolean;
  begin
    Result := FValue = FMinValue;
  end;
  
  function TfpgSpinEditFloat.IsMaxLimitReached: Boolean;
  begin
    Result := FValue = FMaxValue;
  end;
  
  function TfpgSpinEditFloat.GetEditBackgroundColor: TfpgColor;
  