Так я и думал, что вы вводите меня в заблуждение.
Код:
procedure TForm1.GifClick(Sender: TObject);
var
ResStream: TResourceStream;
GIF: TGifImage;
begin
ResStream := TResourceStream.Create(HInstance, 'imggif', 'RES');
GIF:=TGifImage.Create;
GIF.LoadFromStream(ResStream);
Image1.Picture := nil;
Image1.Picture.Bitmap.Assign(GIF);
GIF.Free;
ResStream.Free;
end;
не равен
Код:
procedure TForm1.BitBtnXClick(Sender: TObject);
begin
ExtractRes('RES', 'imggifX' , 'X.gif');
Image2.Picture := nil;
Image2.Picture.LoadFromFile('X.gif');
Self.Image2.Parent.DoubleBuffered := true; // Устранить мерцание
end;
Первый код НИКОГДА (!!!) не даст анимации, по той причине, что загрузка происходит в битмап, второй код такого ограничения не имеет. Попробуйте:
Код:
...
Image1.Picture.Assign(GIF);
...