Delphi FireMonkey 的动画以及多线程

网上看到有人抱怨说在 FireMonkey 框架下做了动画,然后当使用 Indy 做网络访问的时候,因为 Indy 的阻塞,导致动画停止了。他已经把  Indy 访问网络的代码放进线程了,还是让动画停止。抱怨在 FireMonkey 框架下 TThread 有问题不好用。

我就在 Delphi 10.3.3 底下写了个测试程序,测试了一下。发现一切正常。

测试程序里面有三种动画:

1. Delphi 提供的 TFloatAnimation 来让一个 TArc 旋转起来。这个无需写代码,设置几个属性就可以了;

2. 我自己定义了一个 TThread 的子类,在里面跑循环,去驱动一个 TArc 旋转。中间用 Sleep 去阻塞线程,看看线程因为 Sleep 停止后,第一个动画是否被阻塞停止;

3. 另外一个线程的写法,使用 TTask.Run 里面写匿名函数,在该函数里面循环去驱动一个 TArc 旋转。

--------------------

测试结果,符合预期:

1. 第一个动画开始后,不会因为后面两个动画的线程被阻塞而停止动作;

2. 后面两个线程的循环,可以通过 Sleep 让它停下来,动画也因此停下来,也可以解除 Sleep 让它继续,动画也因此继续。

我把例子代码打包发到:https://download.csdn.net/download/pcplayer/14921189

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值