Einzelnen Beitrag anzeigen

Benutzerbild von Danny92
Danny92

Registriert seit: 18. Aug 2014
55 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Animierte gif in Stringgridzelle

  Alt 16. Aug 2017, 14:04
Ich möchte eine animierte GIF in eine StringGrid-Zelle laden.
Das Laden an sich hab ich mit Image1.Picture.Graphic schon hinbekommen. Auch die Transparenz in Image1 ist da.
Aber wenn ich das im OnDrawCell-Ereignis des StringGrids1 mit StringGrid1.Canvas.Draw(Rect.Left, Rect.Top, Image1.Picture.Graphic) einfüge,
ist die GIF im Standbild, statt animiert, außerdem ist es in den Zellen nicht mehr transparent. Also in Image1 ist es animiert und transparent, aber in den einzelnen Zellen weder noch..

Delphi-Quellcode:
procedure TForm1.FormClick(Sender: TObject);
var
  GIFimg: TGIFImage;
begin
  GIFImageDefaultAnimate := True;
  GIFimg:= TGIFImage.Create;
  gifimg.AnimationSpeed:=1000;
  try
    GIFimg.LoadFromFile('C:\Users\Danny\Google Drive\Schiffe versenken\sound\explosion.gif');
    Image1.Picture.Assign(GIFimg);
  finally
    GIFimg.Free;
  end;
  (Image1.Picture.Graphic as TGIFImage).Animate := True;
  //feldplayer.Repaint;
  FeldPlayer.Repaint;
end;
Delphi-Quellcode:
procedure TForm1.FeldPlayerDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
   (Image1.Picture.Graphic as TGIFImage).Animate := True;
  FeldPlayer.Canvas.Draw(Rect.Left,Rect.Top,Image1.Picture.Graphic);
  (Image1.Picture.Graphic as TGIFImage).Animate := True;
  //FeldPlayer.Canvas.StretchDraw(Rect,Image1.Picture.Bitmap);
end;
Weiß da jemand schnell Abhilfe, wie sich das (schnell & einfach) realisieren lässt? Danke!
  Mit Zitat antworten Zitat