Revisando un poco más a fondo el código creo que lo puedes reducir.
En el evento OnMessage simplemente pones:
Código Delphi
[-]
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
begin
if
(Msg.message = WM_KEYDOWN) and (LoWord(Msg.wparam) = VK_TAB) and
(GetKeyState(VK_CONTROL) < 0) and Assigned(ActiveMDIChild)
then
begin
Handled := Boolean(ActiveMDIChild.Perform(CM_DIALOGKEY, Msg.wParam, Msg.lParam));
end;
end;
y ya no haces uso ni de la función IsOnTabSheet ni del evento OnShortCut del formulario con el PageControl.
// Saludos