17e48aa688821e0c3f5607237e7ea68dce08c57e
The visible thing is only the taskbar button — the form window is never shown (form_visible_was=False throughout). That button belongs to the FMX proxy, created partway through FormCreate, and FormCreate runs for ~1 s because it opens the DB, binds the Indy server and kicks off WebView2. The thread pumps no message during that second, so nothing could hide the proxy until it ended: hooks and hide points alike were powerless by construction. So stop trying to react faster and remove the wait instead: on a --tray launch btnStartClick now runs inside the deferred block, after MinimizeToTray. FormCreate returns in milliseconds, the proxy is hidden immediately, and the server starts once nothing is on screen. FServer is constructed earlier (line 295), so FServer.Active stays safe meanwhile. Normal launches keep the original order untouched. The EVENT_OBJECT_SHOW hook stays armed across the deferred start, so a proxy re-shown during it is hidden again. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
full local password manager
Languages
Pascal
46.7%
JavaScript
35.4%
HTML
9.4%
CSS
4.9%
PHP
2.1%
Other
1.4%