拖动时 图片位置 置后(请看代码)?(35分)

  • 主题发起人 主题发起人 liwowo
  • 开始时间 开始时间
L

liwowo

Unregistered / Unconfirmed
GUEST, unregistred user!
private
x1,y1:integer; //拖到目标坐标
aa:boolean; //是否能拖
image_left:integer; //开始拖动时图片的X坐标
image_top:integer; ////开始拖动时图片的Y坐标

//====================

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

begin
image_left:=image1.left;
image_top:=image1.top;
X1:=x;
Y1:=y;
aa:=true;
end;

//==========
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
aa:=false;
end;
//==============
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);

begin
if aa then
begin
image1.left:=image_left+(X-x1);
image1.top:=image_top+(y-y1);
end;
end;

怎么会移动的坐标与mouse的坐标不一致阿 明显置后!兄弟们给看看!
 
为什么没人回话阿。。。 郁闷阿
 
See this code:

var
Image_Left, Image_Top, X1, Y1, X0, Y0: Integer;
AA: Boolean;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image_Left := Image1.Left;
Image_Top := Image1.Top;
Canvas.DrawFocusRect(Bounds(Image_Left, Image_Top, Image1.Width, Image1.Height));
X0 := X;
Y0 := Y;
X1 := X;
Y1 := Y;
AA := True;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if AA then
begin
Canvas.DrawFocusRect(Bounds(Image_Left+X1-X0, Image_Top+Y1-Y0, Image1.Width, Image1.Height));
X1 := X;
Y1 := Y;
Canvas.DrawFocusRect(Bounds(Image_Left+X1-X0, Image_Top+Y1-Y0, Image1.Width, Image1.Height));
end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
AA := False;
Canvas.DrawFocusRect(Bounds(Image_Left+X1-X0, Image_Top+Y1-Y0, Image1.Width, Image1.Height));
Image1.Left := Image_Left+X-X0;
Image1.Top := Image_Top+Y-Y0;
end;
 
接受答案了.
 

Similar threads

I
回复
0
查看
733
import
I
I
回复
0
查看
588
import
I
I
回复
0
查看
746
import
I
后退
顶部