首先,VCL 的 TPageControl 是没有切入切出动画的,所以,这里要做的是给 VCL 的 TPageControl 做动画支持。当然,虽然咱们说的是 QAnimation 教程,但关注的重点不是 QAnimation,而是如何给 TPageControl 添加动画效果,QAnimation 只是一个动画控制器
标签: 动画
[FMX] FMX 动画类的一个辅助增强
本增强的目的是解决动画对象只支持 published 的有效的几种属性的问题,确切的说,这是一个适配器,通过匿名函数建立与非 published 属性的适配。我在 [FMX] Delphi 中 TAnimation 设计的几点值得商榷的地方 一文中讨论了 FMX 动画支持类的一些值得商榷的地方和改动,而这个增强从另一个
[FMX]使用 FMX 那些缺失的动画效果
FMX 里的动画做起来简单So easy! TFloatAnimation 不能对一些整数类型的属性做动态效果。 实际上,我们并不需要太沮丧,毕竟天生我材必有用,今天吃饱了明天还饿,这只是因为官方忘了将TIntAnimation注册到面板上而已,我们只需要动态创建它并设置相关属性。 [crayon-62f91210b2
[杂谈] 在 Delphi/C++ Builder 中创建无限循环的 GIF 动画
首先是看代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
var AGif: TGifImage; ABitmap: TBitmap; i: Integer; ALoopExt:TGIFAppExtNSLoop; begin AGif := TGifImage.Create; AGif.SetSize(100, 100); ABitmap := TBitmap.Create; ABitmap.SetSize(100, 100); for i := 9 downto 0 do begin ABitmap.Canvas.FillRect(Rect(0, 0, 100, 100)); ABitmap.Canvas.TextOut(i * 10, 30, IntToStr(i)); if i = 9 then TGIFAppExtNSLoop.Create(AGif.Add(ABitmap)) else AGif.Add(ABitmap); end; AGif.AnimationSpeed := 100; Image1.Picture.Assign(AGif); TGifImage(Image1.Picture.Graphic).Animate := true; FreeAndNil(ABitmap); FreeAndNil(AGif); end; |
这段代码实现的是绘制了一个从右到左的,从 9 变到 0 的小动画,动画每帧间隔为 100ms,我们用一个 TImage 的实例 Image1 来显示。 这里,有一个关键的地方,是为动画添加 TGIFAppExtNSLoop 扩展,如果不设