如何在Delphi 2010(VCL)中用鼠标平移图像

时间:2018-07-10 08:57:30

标签: image delphi scroll

我在ScrollBox中有一个TImage组件,其中图像大于ScrollBox。我可以使用滚动条在ScrollBox中移动图像,但是我想使用鼠标。我想单击图像并将其拖动以在ScrollBox中移动它。当我这样做时,ScrollBox的滚动条应相应移动。

我将图像光标设置为crHandPoint,以便人们期望他们可以移动图像。

我的问题是,我该如何进行这项工作?

procedure TfrmKaarte.imgKaartCanvasMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  bPanning:=True;
  pt := Mouse.CursorPos;
end;

procedure TfrmKaarte.imgKaartCanvasMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
  if bPanning=True then
  begin
    imgKaartCanvas.Left:=X+imgKaartCanvas.Left-pt.X;
    imgKaartCanvas.Top:=Y+imgKaartCanvas.Top-pt.Y;
  end;
end;

procedure TfrmKaarte.imgKaartCanvasMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  bPanning:=False;
end;

0 个答案:

没有答案