Known Problems and Bugs 

The following are the problems with TGIFImage that are known to exist at this time (23-may-1999).
If you find a bug or encounter a problem that is not described here, please check the bug list at the TGIFImage home page for up to date information. If that doesn't help, feel free to report the problem to me.

  General problems
bug The combination of buffered, tiled and transparent draw will display the background incorrectly (scaled).
Consider using the goDirectDraw option to circumvent this problem.

bug The combination of non-buffered (goDirectDraw) and stretched draw is some times distorted with a checkerboard effect.
The cause of this problem is believed to be a bug in either Windows GDI or certain video drivers.

bug Certain animated GIFs might have a problem when displayed inside a scroll box.
If an animated GIF is displayed inside a scroll box (e.g. a TScrollBox or a scrollable TForm) and part of the GIF is outside the visible area, the background that is buffered by TGIFImage will contain a snap shot of the area outside the scroll box. This can be reproduced with the GIF Explorer demo application.
This isn't a TGIFImage bug per se, but just the way the windows GDI behaves. To avoid this effect, use double buffering. In Delphi 4 & 5 and C++ Builder 4, one can use the double buffering capability of TWinControl: Put a TImage component inside a TPanel component and set the TPanel's DoubleBuffering property to True at run-time. In older versions of Delphi and C++ Builder, a TBitmap can be used for double buffering. See the Thread demo application for an example of this.

bug Buffered display flickers when TGIFImage is used by a transparent TImage component to display an animated GIF.
This is a problem with TImage caused by the fact that TImage was designed with static images in mind. Not much I can do about it. Try using double buffering (see above).

bug The VCL unit graphics.pas in Delphi 3.0 contains a bug that causes multi-threaded applications to hang if they use TBitmap. If you plan to use the multi-threaded GIF painter (which is the default for TGIFImage) or use TGIFImage or TBitmap in multi-threaded applications (Delphi 3 ISAPI/NSAPI applications are multi-threaded) you'll have to fix the bug in graphics.pas.
The modification you need to perform on graphics.pas is described here.
The bug has been fixed by Borland in Delphi 3.01.

bug The ByteSwapColors procedure of the Delphi 3.0 graphics.pas unit contains a bug that affects TGIFImage.
ByteSwapColors is used various places in graphics.pas to convert an array of RGB values (TPaletteEntry) to BGR values (TRGBQuad) and vice versa. The problem is that the first entry of the array is never converted.
The problem does not exist in versions of Delphi prior to 3.0 since they use a different method to convert between RGB and BGR.
The modification you need to perform on graphics.pas is described here.
The bug has been fixed by Borland in Delphi 3.01.

bug The TBitmap.SetPixelFormat procedure of the Delphi 3.x graphics.pas unit contains a resource leak.
The resource leak only occurs when converting a TBitmap to pf8bit pixel format. Although TGIFimage contains a work-around for this bug, and thus isn't affected, your application can still suffer from the bug if you use TBitmaps or TJPEGImages.
The modification you need to perform on graphics.pas is described here.
The bug has been fixed by Borland in Delphi 4.

  C++ Builder problems
bug When compiling the TGIFImage demo applications with C++ Builder 4, you might get the following errors:
Unable to find package import for inetdb40.bpi and inet40.bpi
Unable to open file DCLUSR40.LIB
This is caused by a bug in C++ Builder's conversion of the projects from C++ Builder version 3 to version 4 format. To resolve the problem, do the following for all the demo make files (.BPR files):
1 Open the .BPR file in notepad.
2 In the SPARELIBS line, remove the reference to DCLUSR40.lib.
3 In the PACKAGES line, remove the references to inetdb40.bpi and inet40.bpi
4 Save the file.


 


Copyright © 1998-99 Anders Melander. All rights reserved.