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!