InsertBitmapListItem Example for Access 2.0

This example loads an ordinary file and uses it to create and play an animation. It assumes that the LEAD control has already been sized to the aspect ratio of the image.

Dim nMax As Double ' Maximum width or height for bitmaps in the list
Dim BitmapWidth As Double ' Width of the bitmap
Dim BitmapHeight As Double ' Height of the bitmap
Dim I As Long  ' Loop Counter

nMax = 160
Me![LEAD2].Object.Load "c:\lead\images\image1.cmp", 0, 0, 1
BitmapWidth = Me![LEAD2].Object.BitmapWidth
BitmapHeight = Me![LEAD2].Object.BitmapHeight

' Reduce memory requirements, if necessary. Only small bitmaps play smoothly.
If (BitmapWidth > nMax) Then
   Me![LEAD2].Object.Size nMax, (BitmapHeight * nMax) / BitmapWidth, RESIZE_RESAMPLE
ElseIf (BitmapHeight > nMax) Then
   Me![LEAD2].Object.Size (BitmapWidth * nMax) / BitmapHeight, nMax, RESIZE_RESAMPLE
End If

' Dither to an optimized palette, leaving the last color blank to use
' for transparency.
Me![LEAD2].Object.ColorRes 8, CRP_IDENTITYPALETTE, CRD_FLOYDSTEINDITHERING, 255

' Set an arbitrary transparent color in the last position of the bitmap palette.
Me![LEAD2].Object.BitmapPalette(255) = RGB(212, 222, 202)

' Set the playback values that will apply to all bitmaps in the list.
Me![LEAD2].Object.BitmapDelay = 10
Me![LEAD2].Object.BitmapTop = 0
Me![LEAD2].Object.BitmapLeft = 0
Me![LEAD2].Object.BitmapEnableTransparency = True
Me![LEAD2].Object.BitmapTransparentColor = 16777216 + 255 ' Specified by palette index
Me![LEAD2].Object.BitmapDisposalMethod = ANIMATIONDISPOSAL_RESTOREBACKGROUND

' Free the LEAD1 control's current bitmap list.
Me![LEAD1].Object.BitmapList = 0

' Populate the bitmap list in the LEAD1 control.
For I = 0 To 36
   Me![LEAD1].Object.InsertBitmapListItem I, Me![LEAD2].Object.Bitmap
   ' Rotate, using the transparent color as the fill color.
   Me![LEAD1].Object.BitmapListIndex = I
   Me![LEAD1].Object.Rotate 1000 * I, 0, 16777216 + 255
Next I

' Set the animation playback properties
Me![LEAD1].Object.AnimationBackColor = RGB(0, 0, 255)
Me![LEAD1].Object.AnimationBitsPerPixel = 8
Me![LEAD1].Object.AnimationHeight = Me![LEAD1].Object.ScaleHeight
Me![LEAD1].Object.AnimationWidth = Me![LEAD1].Object.ScaleWidth
Me![LEAD1].Object.AnimationLoop = False
For I = 0 To 255
   Me![LEAD1].Object.AnimationPalette(I) = Me![LEAD1].Object.BitmapPalette(I)
Next I

' Set properties for a scaled animation.
Me![LEAD1].Object.AutoRepaint = True
Me![LEAD1].Object.AutoSetRects = False

' Set the image display size to match the LEAD control.
Me![LEAD1].Object.SetDstRect 0, 0, Me![LEAD1].Object.ScaleWidth, Me![LEAD1].Object.ScaleHeight
Me![LEAD1].Object.SetDstClipRect 0, 0, Me![LEAD1].Object.ScaleWidth, Me![LEAD1].Object.ScaleHeight

' Start the animation.
Me![LEAD1].Object.AnimationEnable = True

' Free the LEAD2 control's bitmap.
Me![LEAD2].Object.BitmapList = 0