@Mavarik: Hab mir ein Video von dir angesehen. Warum soll man bei plattformübergreifend keinen Code hinter einen FMX-Button setzen?
Ganz einfach...
Die Style-Animationen in FMX werden über "Timer" gelöst. Diese laufen nur, wenn die Ausführung in der Application-Loop läuft.
Wenn Du also - damit der User nicht 2x auf einen Button klickt - den Button disablen willst, wird es erst dargestellt, wenn die Ausführung wieder in Application-Loop läuft.
Im OnClick
- Button disablen
- Thread starten
- Am Ende von Thread eine Queue-Proc und darin den Button wieder enablen.
Oder einfach den Idleworker aus meinem FDK verwenden.
Wenn der Application.OnIdle event feuert, ist alles auf dem Bildschirm gemalt und Du kannst andere Sachen machen.
Mavarik
PS.: Nicht so "tragisch" auf FMX_Windows.