我在图形上加载内容(jpg),但不想在图片上画东西(也不让的),所以在上面加了一层,即或者TImage或者TPaintBox控件,放在TImage有图片的上面。这样,下面的图片内容会看见,并在上面画东西不影响下面的。但是,这样的结果,移动时下面的图片动的很快。不在上面加一层的话,就很好。为什么?
如下面的:
只有一个TImage时的移动:其中:b_move, i_x, i_y是在TForm1中加的私有变量。
//处理鼠标移动的事件
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
b_move:=true;
i_X:=X;
i_Y:=Y;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
moveFlag:=False;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if b_move then
begin
Image1.Left:=Image1.Left+(X-i_X);
Image1.Top:=Image1.Top+(Y-i_Y);
end;
end;
如加了层后,把层上的三个事件的函数取与Image1的一样的。图片移动
如下面的:
只有一个TImage时的移动:其中:b_move, i_x, i_y是在TForm1中加的私有变量。
//处理鼠标移动的事件
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
b_move:=true;
i_X:=X;
i_Y:=Y;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
moveFlag:=False;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if b_move then
begin
Image1.Left:=Image1.Left+(X-i_X);
Image1.Top:=Image1.Top+(Y-i_Y);
end;
end;
如加了层后,把层上的三个事件的函数取与Image1的一样的。图片移动
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货