DragImage




Option Explicit
Dim px As Long, py As Long
Dim gapx As Long, gapy As Long

Private Sub Form_Load()
Set Image1.Container = Picture1
Image1.Stretch = True
Image1.Picture = LoadPicture("C:\Windows\Bubbles.bmp")
Picture1.Move 60, 60, 6000, 4000
Image1.Move -1000, -1000, 10000, 10000
Me.Move Screen.Width \ 2 - 3100, Screen.Height \ 2 - 2250, 6200, 4500
End Sub

Private Sub image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
px = X
py = Y
gapx = Picture1.Width - Image1.Width
gapy = Picture1.Height - Image1.Height
Image1.MousePointer = 15
End Sub

Private Sub image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim deltax As Long, deltay As Long

If Button = vbLeftButton Then
X = CLng(X)
Y = CLng(Y)

If Abs(X - px) < 30 Then
ElseIf X < px Then
deltax = Abs(X - px)

If Image1.Left - deltax >= gapx Then
Image1.Left = Image1.Left - deltax
ElseIf gapx <= 0 Then
Image1.Left = gapx
Else
Image1.Left = 0
End If
px = X + deltax
ElseIf X > px Then
deltax = Abs(X - px)

If Image1.Left + deltax <= 0 Then
Image1.Left = Image1.Left + deltax
Else
Image1.Left = 0
End If
px = X - deltax
End If

If Abs(Y - py) < 30 Then
ElseIf Y < py Then
deltay = Abs(Y - py)

If Image1.Top - deltay >= gapy Then
Image1.Top = Image1.Top - deltay
ElseIf gapy <= 0 Then
Image1.Top = gapy
Else
Image1.Top = 0
End If
py = Y + deltay
ElseIf Y > py Then
deltay = Abs(Y - py)

If Image1.Top + deltay <= 0 Then
Image1.Top = Image1.Top + deltay
Else
Image1.Top = 0
End If
py = Y - deltay
End If
End If
End Sub

Private Sub image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.MousePointer = 0
End Sub










( dragimage.html )- by Paolo Puglisi - Modifica del 17/12/2023