Using imgaes to perform action instead of command button

arnelgp, I am not able to open the attached file because of security restrictions in my company. Can u pls send me the code?
 
Code:
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

on your form's open event


private mImageClass1 As clsImage
' if you have more images
' private mImageClass2 As clsImage
' private mImageClass3 As clsImage

private sub form_open( cancel as integer)
set mImageClass1 = New clsImage
mImageClass1.SetUp Me.yourImageControl
' if you have more images
' mImageClass2.SetUp Me.yourImageControl2
' mImageClass3.SetUp Me.yourImageControl3
End Sub

private sub form_unload(cancel as integer)
set mImageClass1 = Nothing
' if you have more images
' set mImageClass2 = Nothing
' set mImageClass3 = Nothing
end sub
 
arnelgp, its working perfectly fine. Thanks :)
 

Users who are viewing this thread

Back
Top Bottom