Now that we have introduced all the capabilities of TAnimation, you may think it should be easy to animate a property value for FMX objects. However, the FMX animation model is very generic and can be applied to whatever Delphi objects are out there (from UI to business classes).
Once again, we just need to clearly address whether the animations should be synchronous or asynchronous. You may prefer the former when you need to ensure that the animation has completed before moving on to something else. Obviously, you'll want to wait for the animation to complete without preventing the animation itself from finishing; otherwise, you'd be stuck in an infinite wait deadlock.
The second kind of execution (asynchronous) also has some tricky aspects that we need to deal with. If you launch (one or more) animations and you want to continue doing other things without waiting for them to complete, who will take care of them once they've finished...