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);