For issues '
why my code doesn't run as what I think', usually is very helpful if the user can provide the compile-able source code, so others can run and inspect the problem.
In the link below, you can find many simple animation demos:
https://wiki.freepascal.org/Portal:HowTo_DemosClick the link above and find these names:
-
Moving an Object by pressing a key-
Control an Object's direction using the keyboard-
Simple animation-
Move a shape with a mouse-
Button with animationI can't possibly conceive how any modern hardware would choke on moving 9 simple items across the screen
LCL components are build for compatibility not optimized for performance, you won't get the performance the hardware can offer. If performance is important, you should consider other graphics libraries that are hardware accelerated.
TTimer is okay for simple animations. But it won't give you any difference if the interval is too small. I am not sure, but I usually won't use interval < 16.
If time precision is important, you should use different technique. Like EpikTimer + delta time method.
For animating several components with same direction and speed, you should put them in a container, TPanel for example. Like the demo:
simple transition effect (in User Interface category, in the link above)