Анимированные GIF и TDrawgrid в Delphi 2007
Я могу нарисовать изображение, используя что-то вроде кода ниже:
ACanvas.Draw(ARect.Left+16, ARect.Top+4, imgGIF.Picture.Graphic )
Теперь gif для этого компонента imgGIF загружается через
GIF := TGifImage.Create;
GIF.LoadFromFile('pathtogifprocessing.gif');
GIF.Animate := True;
imgGIF.Picture.Graphic.Assign(GIF);
Я устанавливаю
GIFImageDefaultAnimate := True;
GIFImageDefaultTransparent := True;
Среда Delphi 2007, использующая TGifImage, который поставляется с DVD Delphi 2007.
Возможно ли это вообще? Чтобы отобразить анимированный GIF на ячейке TDrawgrid?
Я не думаю, что это с холста.draw-это только рисование изображения, а не вставка компонента в ячейку-так далеко, как Я могу понять,это только рисование твердого изображения на gif.
1 ответ:
Когда
TGIFImage.Animateустановлено в True, вызовCanvas.Draw()отобразит текущий кадр анимации. КогдаTGIFImageпомещается внутрьTImage,TImageиспользует событиеTGraphic.OnChangeдля автоматического перерисовывания последнего кадра во время выполнения анимации. Чтобы сделать то же самое сTDrawGrid, вам придется периодически вызыватьCanvas.Draw(), например, в таймере, интервал которого установлен на значение свойстваTGIFImage.FrameDelay. В противном случае загрузите GIF-изображение в отдельный экземплярTGIFImageдля использованияTDrawGrid, чтобы вы могли использовать СобытиеTGraphic.OnChange.
Comments