Option Compare Database
Option Explicit
Private WithEvents img As Access.Image
Const event_hook As String = "[event procedure]"
Private small_icon_size As Long
Private big_icon_size As Long
Private OrigTop As Long
Private OrigLeft As Long
Private ImageDown As Access.Image
Private ImageUpPictureData As Variant
Public Sub SetUp(i As Access.Image, _
Optional BigSize As Long = 0, _
Optional SmallSize As Long = 0, _
Optional ImageDownKey As Access.Image)
Set img = i
big_icon_size = IIf(BigSize = 0, i.Height, BigSize)
small_icon_size = IIf(SmallSize = 0, i.Height - 60, SmallSize)
Set ImageDown = IIf(ImageDownKey Is Nothing, i, ImageDownKey)
ImageUpPictureData = img.PictureData
img.OnMouseDown = event_hook
img.OnMouseUp = event_hook
OrigTop = i.Top
OrigLeft = i.Left
img.Height = big_icon_size
img.Width = big_icon_size
End Sub
Private Sub Class_Terminate()
Set img = Nothing
End Sub
Private Sub img_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
With img
.Top = OrigTop
.Left = OrigLeft
.Height = big_icon_size
.Width = big_icon_size
End With
img.PictureData = ImageUpPictureData
End Sub
Private Sub img_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
With img
.Height = small_icon_size
.Width = small_icon_size
.Top = OrigTop + ((big_icon_size - small_icon_size) \ 2)
.Left = OrigLeft + ((big_icon_size - small_icon_size) \ 2)
End With
img.PictureData = ImageDown.PictureData
End Sub