【发布时间】:2017-11-05 02:59:40
【问题描述】:
Delphi 的TGIFImage 有以下事件:OnPaint、OnAfterPaint、OnLoop、OnEndPaint。
但是在显示动画 GIF 时,这些事件都不会被调用。
我使用以下代码来显示动画 GIF:
FGif := (Image1.Picture.Graphic as TGIFImage);
FGif.OnProgress := GifProgress;
FGif.OnLoop := GifLoop;
FGif.OnPaint := GifPaint;
FGif.OnEndPaint := GifEndPaint;
FGif.OnAfterPaint := GifAfterPaint;
FGif.Animate := True;
动画播放时如何提取当前可见帧索引?
如何检测动画何时结束?
如何检测下一帧何时显示?
OnProgress 事件仅在第一个动画循环期间调用,在绘制最后一个动画帧之后 - TGIFImage 将从第一帧继续动画,但此事件停止工作。
我正在使用 Delphi 10.2 Tokyo。
【问题讨论】:
-
如果您可以访问源代码,则可以进行一些调试以找出未调用事件的原因