4f2aff9de4
Why every previous attempt could not work: the main thread is BUSY inside FormCreate and pumps no message, and that is exactly when FMX creates and shows its taskbar proxy. A WinEvent hook, a timer, a queued call — none of them can run in that window. Deferring the server start shortened the window but did not remove it, because the proxy is created regardless. A worker thread is the one thing still running while the main thread blocks. It polls for our TFMAppClass window (matched on our own process id) and hides it the instant it appears; ShowWindow is safe cross-thread. It stops as soon as the tray startup completes, with a 10 s ceiling so it can never linger. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>