在很多图片查看软件中,都有用鼠标拖动来显示大尺寸图片的功能,我是用delphi来编写的,我把Timage控件放到ScrollBox中,当采用以下从网上找到的代码(代码如下),结果鼠标拖动时候,光在那边闪,图像始终没有移动成功,不知道是不是哪里还要设置一下控件的属性呢,希望各位高手指点一下,不胜感激!
实现鼠标对图象的拖动
var d:boolean;
ox,oy:integer;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d:=true;
ox:=x;
oy:=y;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if d then
ScrollBox1.ScrollBy(x-ox,y-oy);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d:=False;
end;
实现鼠标对图象的拖动
var d:boolean;
ox,oy:integer;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d:=true;
ox:=x;
oy:=y;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if d then
ScrollBox1.ScrollBy(x-ox,y-oy);
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d:=False;
end;
CanMove:Boolean;
OldX,OldY:Integer; //开始手动前鼠标的位置//按下鼠标开始拖动
procedure TFrmMoreExam.imgBigPicMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
CanMove:=true;
OldX:=X;
OldY:=y;
end;//拖动图片
procedure TFrmMoreExam.imgBigPicMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if canmove then
begin
imgBigPic.Left:=imgBigPic.Left+x-OldX;
imgBigPic.top:=imgBigPic.top+y-OldY;
end;
end;//放开鼠标,结束拖动
procedure TFrmMoreExam.imgBigPicMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
CanMove:=false;
end;
是怎样的意思呢?