We are working with Firemonkey since version 1, and still find difficulties updating components that are currently visible on the screen. There are many 'ways' to request a repaint in Firemonkey, perhaps too many:
- Applying a style (ApplyStyle event) - mostly when it becomes visible on screen
- Requesting ".repaint" - some components have this
- Requesting ".realign" - sometime works, current versions of FMX seem to drop / hide it
- Requesting ".invalidate" - some components, mostly forms, have this
- Requesting ".invalidateRect" - most components have this
- Calling the ApplyStyle event manually - not guaranteed to work and design-wise is incorrect...
Given the lacking documentation for the platform, is there a "well defined" way to change the visual appearance (internal values of a style) when a component is already displayed? I.e. a listboxItem that is already present and visible on screen, a TGrid cell, and so on. Would appreciate your thoughts...