TBzConvGIF2Bmp component and TBzGIFImage object 
by Vladimir Kladov (C) 1999
version 1.0 for Delphi3
----------------------------------------------------
TBzConvGIF2Bmp component Is intended to convert GIF (including animated) into sequence of bitmaps, puts them into BzImgCollection through BzImgCache and pass this sequence to BzAniBackground component. Allows to use GIF for creating animated background for any visual owner-drawn control (e.g. to provide visualization of GIF).
   Uses TBzGIFImage object for loading and decoding GIFs. Provides quality transformation using REAL transparent mask method and allows to show ALL gifs correctly even if display is working not in true color mode.

Properties:
----------
Background : TBzAniBackground; <<<KEY>>>
	Target background component. Must have properties ImgCache and ImgCache.ImgCollection correctly set to start working.

AutoDestruct : Boolean; (Default False). Set it True after creating dynamic instance of TBzConvGIF2Bmp to not care of destroying of it after decoding of all frames (or after decoding 1st frame if only 1st frame is needed).

Animate : Boolean; (Default True). Set it to False to pass to Background only first frame (background will not animate too). Any way all frames will be decoded and stored separately in image Index2 if Only1stFrame property is False.

Only1stFrame : Boolean; (Default False). Set it to True to decode and pass to Background only first frame. If set to True, Animate is set to False.

Lock: Boolean; (Default False); Set it to True to lock images stored in collection through Background.ImgCache (this prevents images from releasing from cache until Background.ImgCache.Unlock method for this image not called). If Lock is True, images stored by this component are unlocked when component is destroyed, so You need to Lock them again before this happens if You really want to stay them locked.

UseCached : Boolean; (Default True); True to use existing loaded and decoded already images from cache (recognized by full path stored as name of images plus additional suffixes). I recommend to leave this property True to use cache more efficiently.

TestFileTime : Boolean; (Default True); Set it to False to prevent test file time. This can increase speed enough but in that case You can obtain again older version of gif-file loaded already into cache. Has no effect if UseCached=False.

Transparent : Boolean; (Default True). Set it to False to store GIF as non-transparent (transparent area is filled with background color of GIF itself or with BkColor if it is not clNone). I recommend leave this property True and control background of image using properties of BzAniBackground.

BkColor : TColor; (Default clNone). Set it to color, what is used to fill transparent area of GIF (has no effect if Transparent=True).

DecodeAll : Boolean (Default False). Set it True to force decoding of all frames before activating of Background. Usually does not need change it it True (when False, Background starts faster).

FileName : String; <<<KEY>>>
	Set it to full path of image You want to be decoded and passed to Background. Set all other properties before setting FileName.

Events:
-------

OnReady : TNotifyEnent; Set it to handle finishing of decoding of last frame.

OnTooLargeImage : TNotifyEvent; Set it to handle event when BzConvGIF2Bmp can not allocate enough space in Background.ImgCache.ImgCollection to place resulting image there.

Run-time:
---------

Create( AOwner : TComponent ); - constructor;

Destroy; - destructor;

Clear; - free all allocated resources;

Ready : Boolean; - returns True if all frames are decoded;

Reload; usually You not need call this function. May be, You knew that image in cache is too old...

Index1 : Integer; index of first single-frame image representing GIF without animation in collection.

Index2: Integer; index of image with all frames of GIF decoded and stored in cache.

Width: Integer; width of frame.

Height : Integer; height of frame.

Count : Integer; number of frames.

=========================================================================
TBzGIFImage object.

In this publication I do not explain TGIFImage object properties and methods. It just used by TBzConvGIF2Bmp component internally, so I included it into zip. If You want to get freeware gif component/object with source, You may download freeware RxLib.

-------------------------------------------------------------------------
Disclaimer of Warranty
----------------------

THIS SOFTWARE AND THE ACCOMPANYING FILES ARE PROVIDED "AS IS" AND
WITHOUT WARRANTIES OF ANY KIND WHETHER EXPRESSED OR IMPLIED.

In no event shall the author be held liable for any damages whatsoever,
including without limitation, damages for loss of business profits,
business interruption, loss of business information, or any other loss
arising from the use or inability to use  the software.
-------------------------------------------------------------------------

INSTALLATION.

I do not provide package to leave zip smaller. Create it by yourself or
use package containing TBzImgCollection, TBzImgCache and TBzAniBackground components, add BzConvGIF2BmpReg.pas there and compile/install it.

This component is FREE to use by any way. But if You want to get source
You may get it (and source of TBzAniBackground, TBzImgCache, TBzImgCollection
together with this) by purchasing it. How to purhcase - look info for
TBzImgCollection component.

Mail: mr_bonanzas@usa.net
Web: http://members.xoom.com/mr_bonanzas







