Имах същите проблеми при Delphi-то като се загуби фокуса от Контрола на който прихващаш onKeyDown и след това се върне би трябвало да си работи , да но не винаги е така, и не разбрах зашо но се порових в
www.torry.ru и там имаше пример за глобално прихващане на клавиатурата така че си го написах и всичко си тръгна , не знак как е при тебе точно но...
P.S
property KeyPreview: Boolean;
Specifies whether the form should receive keyboard events before the active control.
If KeyPreview is True, keyboard events occur on the form before they occur on the active control. (The active control is specified by the ActiveControl property.)
If KeyPreview is False, keyboard events occur only on the active control.
Navigation keys (Tab, BackTab, the arrow keys, and so on) are unaffected by KeyPreview because they do not generate keyboard events.
Може да е нещо свързано с това.