How to force rendering controls offscreen in Firemonkey


I am trying to make a drop down menu.

I have one wide TLabel on top of the screen and one TLayout that is offscreen (Position.Y < 0). By clicking on that TLabel, I programmatically create a bunch of labels with shadow effect on the TLayot. Then I start animation that drops down the TLayout. Animation is far from smooth.

Removing shadow effect improves things a lot, but that is not an option (for now).

Then I tried to put TLayout in visible position (Position.Y > 0), create TLabels with effects on them, and then start animation. Animation is smooth. But for a moment, menu is visible on the screen before scrolling down. Barely noticeable if not looking for it.

I figure that I forced shadow to be rendered before animation. In the first case, as labels started to show on screen, shadow is rendered and slowing the animation.

My question is: Is there a way to force rendering components that are not visible on the screen (offscreen)?

Comments are closed.