![]() ![]() |
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.
| |||||||||
![]() |
The combination of buffered, tiled and transparent draw will display the
background incorrectly (scaled). Consider using the goDirectDraw option to circumvent this problem. |
||||||||
![]() |
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. |
||||||||
![]() |
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. |
||||||||
![]() |
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). |
||||||||
![]() |
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. |
||||||||
![]() |
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. |
||||||||
![]() |
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. |
||||||||
| |||||||||
![]() |
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):
|