使用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;