Это может быть старая тема, но у меня была такая же проблема минуту назад и я искал подходящее решение. Ваша тема возникла, но не найдено решение, которое я хотел бы использовать.
Моя проблема заключалась в том, что у меня есть основная форма с множеством ярлыков (Backspace, Delete и т. Д.) И вторая форма с полем для редактирования. Поле ввода не получило никаких ключевых действий, которые обрабатываются ярлыками основной формы.
Мое решение: Установите дочерние формы OnShortCut, которые будут перехватывать ярлыки, прежде чем они будут интерпретированы основной формой с помощью:
procedure ChildForm.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
Handled := True;
Self.DefaultHandler(Msg);
end;
Это помогло мне, дочерняя форма ловит ярлыки и обрабатывает их как общие ключевые сообщения. Поле редактирования можно использовать по назначению.