Bom dia amigo, obrigado pela resposta mas consegui resolver com CallBack, coloquei 
 
TKeyDownCallBack = procedure(Sender: TObject; var Key: Word; Shift: TShiftState) of object;
	Em uma unit a parte que é conhecida por todos os forms, já que a unit principal Shell não conhece as telas que são abertas posteriormente dependendo dos eventos por que em alguns casos a responsabilidade de algumas acoes são das próprias telas que foram vinculadas, dessa forma quando eu vinculo uma tela no painel(Shell) eu atribuo o o OnKeyDown a esse CallBack
 
FKeyDOwnCallBack := self.OnKeyDown;
	e no principal sempre chamo o callback antes dele mesmo 
 
procedure TShell.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Assigned(FKeyDOwnCallBack) then
    FKeyDOwnCallBack(Sender,Key,Shift);