打印本文 打印本文 关闭窗口 关闭窗口
控件移动类的实现之二
作者:武汉SEO闵涛  文章来源:敏韬网  点击数6986  更新时间:2009/4/23 18:30:39  文章录入:mintao  责任编辑:mintao
     AlignLeftBottom;

end;

//对齐点

procedure TDragClass.AlignRightTop;

begin

   FPointRec.LeftTop.Top:=FPointRec.RightTop.top;

   FPointRec.RightButton.Left:=FPointRec.RightTop.Left;

   FPointRec.LeftMid.Left:=FPointRec.LeftTop.Left;

   FPointRec.LeftMid.Top:=

     (FPointRec.LeftBottom.Top+FPointRec.LeftTop.Top) div 2;

   FPointRec.TopMid.Top:=FPointRec.LeftTop.Top;

   FPointRec.TopMid.Left:=

     (FPointRec.RightTop.Left+FPointRec.LeftTop.Left) div 2;

   FPointRec.RightMid.Left:=FPointRec.RightTop.Left;

   FPointRec.RightMid.Top:=

     (FPointRec.RightTop.Top+FPointRec.RightButton.Top) div 2;

   FPointRec.ButtonMid.Top:=FPointrec.LeftBottom.Top;

   FPointRec.ButtonMid.Left:=

     (FPointRec.LeftBottom.Left+FPointRec.RightButton.Left) div 2;

end;

//移动右上点

procedure TDragClass.MoveRightTopPoint;

var offsetX,offsetY:Integer;

begin

     GetCursorPos(FPointRec.RightTop.NextP);

     offsetX:=FPointRec.RightTop.NextP.X-FPointRec.RightTop.PrevP.X;

     offSetY:=FPointRec.RightTop.NextP.Y-FPointRec.RightTop.PrevP.Y;

     if not FisMoveStep then

     begin

       FPointRec.RightTop.Left:=FPointRec.RightTop.Left+offsetX;

       FPointRec.RightTop.Top:=FPointRec.RightTop.Top+offsetY;

     end

     else begin

       MoveX:=MoveX+offsetX;

       MoveY:=MoveY+offsetY;

       if Abs(moveX)>=FMoveStep then

       begin

         FPointRec.RightTop.Left:=FPointRec.RightTop.Left+moveX;

         moveX:=0;

       end;

       if Abs(moveY)>=FMoveStep then

       begin

         FPointRec.RightTop.Top:=FPointRec.RightTop.Top+moveY;

         moveY:=0;

       end;

     end;

     FPointRec.RightTop.PrevP:=FPointRec.RightTop.NextP;

     AlignRightTop;

end;

//对齐点

procedure TDragClass.AlignRightBottom;

begin

   FPointRec.LeftBottom.Top:=FPointRec.RightButton.top;

   FPointRec.RightTop.Left:=FPointRec.RightButton.Left;

   FPointRec.LeftMid.Left:=FPointRec.LeftTop.Left;

   FPointRec.LeftMid.Top:=

     (FPointRec.LeftBottom.Top+FPointRec.LeftTop.Top) div 2;

   FPointRec.TopMid.Top:=FPointRec.LeftTop.Top;

   FPointRec.TopMid.Left:=

     (FPointRec.RightTop.Left+FPointRec.LeftTop.Left) div 2;

   FPointRec.RightMid.Left:=FPointRec.RightTop.Left;

   FPointRec.RightMid.Top:=

     (FPointRec.RightTop.Top+FPointRec.RightButton.Top) div 2;

   FPointRec.ButtonMid.Top:=FPointrec.LeftBottom.Top;

   FPointRec.ButtonMid.Left:=

     (FPointRec.LeftBottom.Left+FPointRec.RightButton.Left) div 2;

end;

//移动右底点

procedure TDragClass.MoveRightBottomPoint;

var offsetX,offsetY:Integer;

begin

     GetCursorPos(FPointRec.RightButton.NextP);

     offsetX:=FPointRec.RightButton.NextP.X-FPointRec.RightButton.PrevP.X;

     offSetY:=FPointRec.RightButton.NextP.Y-FPointRec.RightButton.PrevP.Y;

     if not FisMoveStep then

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ...  下一页 >> 

打印本文 打印本文 关闭窗口 关闭窗口