>>42
なぜ、出ないのかは説明が難しいですが、MDIChildのフォームも作成時の
親は Application だという事で、
 全部のキーイベントをフックしたい場合は、メインフォームではなく
 Applicationの持つ窓ハンドルに対してフックすると多少は横取り
 可能な範囲が広がります。

procedure TMainForm.FormCreate(Sender: TObject);
begin
Application.OnMessage:=MessageEvent;
end;

procedure TMainForm.MessageEvent(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message=WM_CHAR then begin
   showmessage('キー押したよ');
end;
end;


ただ、メニュー操作時やダイアログ操作時はたぶんダメでしょう