// 子过程，可以很好的搬移代码，只要少许修改，比如I循环变量必须是本地的。

// 子过程，可以很好的搬移代码，只要少许修改，比如I循环变量必须是本地的。
// 然而，此处的MakeRectBorder是有副作用的，不仅仅做了 RectBorder计算，
// 还计算了NextCell,后面还会用到这个变量。因此，还需要分离。
// MakeRectBorder 创建最大的拖放范围。因为做了职责分离，这里只做垂直拖动，因此，
// 这里只有Left，right才有用。后面的代码也说明确实如此。
// 好了，上面有的 MaxDragExtent，这个MakeRectBorder就不必了。