我在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;
1条答案
按热度按时间mpgws1up1#
我在 Delphi 10 Seatle中编写的一个非常简单的工作代码如下:
不要忘记定义这些变量:
并将FPAN初始化为False。
希望能帮上忙。