InsertBitmapListItem example for Visual Basic

Note: Also works with Access 95 and 97.

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
Lead2.Load "c:\lead\images\image1.cmp", 0, 0, 1
BitmapWidth = Lead2.BitmapWidth
BitmapHeight = Lead2.BitmapHeight

' Reduce memory requirements, if necessary. Only small bitmaps play smoothly.
If (BitmapWidth > nMax) Then
   Lead2.Size nMax, (BitmapHeight * nMax) / BitmapWidth, RESIZE_RESAMPLE
ElseIf (BitmapHeight > nMax) Then
   Lead2.Size (BitmapWidth * nMax) / BitmapHeight, nMax, RESIZE_RESAMPLE
End If

' Dither to an optimized palette, leaving the last color blank to use
' for transparency.
Lead2.ColorRes 8, CRP_IDENTITYPALETTE, CRD_FLOYDSTEINDITHERING, 255

' Set an arbitrary transparent color in the last position of the bitmap palette.
Lead2.BitmapPalette(255) = RGB(212, 222, 202)

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

' Free the LEAD1 control's current bitmap list.
Lead1.BitmapList = 0

' Populate the bitmap list in the LEAD1 control.
For I = 0 To 36
   Lead1.InsertBitmapListItem I, Lead2.Bitmap
   ' Rotate, using the transparent color as the fill color.
   Lead1.BitmapListIndex = I
   Lead1.Rotate 1000 * I, 0, 16777216 + 255
Next I

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

' Set properties for a scaled animation.
Lead1.AutoRepaint = True
Lead1.AutoSetRects = False

' Set the image display size to match the LEAD control.
Lead1.SetDstRect 0, 0, Lead1.ScaleWidth, Lead1.ScaleHeight
Lead1.SetDstClipRect 0, 0, Lead1.ScaleWidth, Lead1.ScaleHeight

' Start the animation.
Lead1.AnimationEnable = True

' Free the LEAD2 control's bitmap.
Lead2.BitmapList = 0