
Если КОД НЕ МЕНЯЕТСЯ. ВАБЩЕ.
Весь функционал, как уже сказано, сделан сто лет назад. Еще ДО появления поля Inherit в INI-файлах.
Расположен в Win.pas
И во всех контролах активно работает. Потому-что, даже если пользователю не дали (шаманством в INI файлах) изменить KeyPreview -- так он устанавливается в TRUE в конструкторе (Win) по дефолту.
А до внедрения этого функционала (вроде, ты должен помнить), события onKeyDown на MainForm не возникали, если один из дочерних контролов оказывался в фокусе.
Я же тебе говорю, что если KeyPreview работает в MainForm - значит будет работать и в других контролах.
Если doKeyBack работает в Memo - значит, ровно также, будет работать во всех остальных.
Ошибок компиляции же нет.
И ничего никуда не переносится - оно с самого зарождения там стоит. Просто, правильно было бы - разрешить пользоваться функционалом, который есть.
Без рукосуйства

Существо предложения в этом и состоит: убрать необходимость рукосуйства, коль скоро потребуется этот функционал. И при этом:
Все абсолютно просто, и безобидно. И сто раз проверено.
------------ Дoбавленo в 09.06:
Ну, и если честно, само свойство KeyPreview предназначено было (мною) не для того, чтобы запретить owner-у перехватывать клавиатуру дочерней формы (MainForm.KeyPreview=False).
А для того, чтобы на форме (или панели) можно было перехватить/запретить клавиши с трех Edit-ов, а с Memo -- не перехватывать.
На этих трех Edit-ах KeyPreview=True, а на Memo - KeyPreview=False.
К примеру, конечно же.
И что в проверке-то - и не нуждается. Сто раз проверено...