Dla mnie jest to wielce nielogiczne
Żeby komunikaty klawiaturowe docierały do konkretnego okna, musi to okno mieć ustawiony tak zwany keyboard focus. Z tego, co pamiętam, okna główne, które posiadają inne kontrolki, domyślnie nie przejmują focusa. Stąd twoje problemy.
Podepnij się pod TApplication::OnMessage, wtedy, jeśli wierzyć dokumentacji, powinieneś przechwytywać wszystkie komunikaty, które docierają do (kolejki komunikatów) aplikacji, w tym te klawiaturowe.