首页  编辑  

使用ScrollBox和TImage实现图像漫游

Tags: /超级猛料/Picture.图形图像编程/控件和绘图/   Date Created:

使用ScrollBox和TImage实现图像漫游

move a TImage in a scrollbox with the mouse?

var

   StartX,

   StartY,

   MoveX,

   MoveY: Integer;

 IsMoved: Boolean;

implementation

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;

 Shift: TShiftState; X, Y: Integer);

begin

 if Button = mbLeft then

 begin

   IsMoved := True;

   StartX  := X;

   StartY  := Y;

   MoveX   := X;

   MoveY   := Y;

   Scrollbox1.DoubleBuffered := True;

 end;

end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState;

 X, Y: Integer);

begin

 if isMoved then

 begin

   if (X < MoveX) and

     ((Image1.Left + Image1.Width + 25) > Scrollbox1.Width) then

     Image1.Left := Image1.Left + (X - StartX);

   if (X > MoveX) and (Image1.Left < 0) then

     Image1.Left := Image1.Left + (X - StartX);

   if (Y < MoveY) and

     ((Image1.Top + Image1.Height + 25) > Scrollbox1.Height) then

     Image1.Top := Image1.Top + (Y - StartY);

   if (Y > MoveY) and (Image1.Top < 0) then

     Image1.Top := Image1.Top + (Y - StartY);

   MoveX := X;

   MoveY := Y;

 end;

end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;

 Shift: TShiftState; X, Y: Integer);

var

 tr1, tr2: TRect;

begin

 if Button = mbLeft then

 begin

   IsMoved := False;

   Scrollbox1.DoubleBuffered := False;

 end;

end;