H
hug
Unregistered / Unconfirmed
GUEST, unregistred user!
我在canvas上划出了图形,我想让他跟随鼠标移动,应该怎么做?
一下试我的代码:
procedure TLayoutForm.FlickerFreePaintBox1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
MoveDotIndex: integer;
XC, YC, Index: integer;
begin
FFieldsInfo.SetMinMaxDot;
for MoveDotIndex := 0 to High(FFieldsInfo.DotArr) do
if (FX > FFieldsInfo.DotArr[MoveDotIndex].MAxMinPointArr[0].X)
and (FX < FFieldsInfo.DotArr[MoveDotIndex].MAxMinPointArr[1].Y)
and (FY > FFieldsInfo.DotArr[MoveDotIndex].MAxMinPointArr[0].Y)
and (FY < FFieldsInfo.DotArr[MoveDotIndex].MAxMinPointArr[1].Y)
then
begin
for Index := 0 to High(FFieldsInfo.DotArr[MoveDotIndex].FieldPoint) do
begin
FlickerFreePaintBox1.Cursor:=crHandPoint;
if MoveFlag = true then
FFieldsInfo.DotArr[MoveDotIndex].FieldPoint[Index].X
:= FFieldsInfo.DotArr[MoveDotIndex].FieldPoint[Index].X + X - FX;
FFieldsInfo.DotArr[MoveDotIndex].FieldPoint[Index].Y
:= FFieldsInfo.DotArr[MoveDotIndex].FieldPoint[Index].Y + Y - FY;
end;
FlickerFreePaintBox1.Repaint;
end;
end;
一下试我的代码:
procedure TLayoutForm.FlickerFreePaintBox1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
MoveDotIndex: integer;
XC, YC, Index: integer;
begin
FFieldsInfo.SetMinMaxDot;
for MoveDotIndex := 0 to High(FFieldsInfo.DotArr) do
if (FX > FFieldsInfo.DotArr[MoveDotIndex].MAxMinPointArr[0].X)
and (FX < FFieldsInfo.DotArr[MoveDotIndex].MAxMinPointArr[1].Y)
and (FY > FFieldsInfo.DotArr[MoveDotIndex].MAxMinPointArr[0].Y)
and (FY < FFieldsInfo.DotArr[MoveDotIndex].MAxMinPointArr[1].Y)
then
begin
for Index := 0 to High(FFieldsInfo.DotArr[MoveDotIndex].FieldPoint) do
begin
FlickerFreePaintBox1.Cursor:=crHandPoint;
if MoveFlag = true then
FFieldsInfo.DotArr[MoveDotIndex].FieldPoint[Index].X
:= FFieldsInfo.DotArr[MoveDotIndex].FieldPoint[Index].X + X - FX;
FFieldsInfo.DotArr[MoveDotIndex].FieldPoint[Index].Y
:= FFieldsInfo.DotArr[MoveDotIndex].FieldPoint[Index].Y + Y - FY;
end;
FlickerFreePaintBox1.Repaint;
end;
end;