Beim Application.OnMessage kommen ausschließlich PostMessage vorbei, welche in der Haupt-Messagebehandlung (TApplication.ProcessMessage und .HandleMessage) abgerufen und behandelt werden.
Auch SendMessage werden direkt
im PeakMessage/GetMessage verarbeitet und kommen ebenfalls nichts bis zum OnMessage raus.
Und Form.WndProc bekommt auch nichts mit, da Menüs und Popups eigenständige Fenster sind.
Das Menu.Popup ist wie ein MessageBox, welches im Windows seine eigene Messageloop benutzt und das Hauptprogramm so lange stoppt.
Hier kommt man ausschlielich über einen MessageHook dran,
oder z.B. wenn man das Popup ableitet und sich ins WndProc hängt.
Mal die VCLStyles für's Popup aktivieren ... vielleicht hat Emba da bereits einen
perversen passenden Hook implementiert und leitet ihn zur
VCL (Application) um.