procedure TForm1.FormKeyDown
(Sender: TObject; var Key: Word; Shift: TShiftState);
...
procedure TForm1.FormKeyUp
(Sender: TObject; var Key: Word; Shift: TShiftState);
...
procedure TForm1.FormKeyPress
(Sender: TObject; var Key: Char);
if Key in ['a'..'z'] + ['A'..'Z'] then Key:=#0
if HiWord(GetKeyState(vk_PageUp)) <> 0 then
  ShowMessage('PageUp - DOWN')
else
  ShowMessage('PageUp - UP');
if ssCtrl in Shift then
  Form1.Caption:= 'Ctrl +' + Chr(Key);
KeyDown (Ctrl) // ssCtrl
 KeyDown (Ctrl+A) //ssCtrl + 'A'
 KeyPress (A) 
 KeyUp (Ctrl+A)
procedure TForm1.FormKeyPress
(Sender: TObject; var Key: Char);
begin
 if Key in ['0'..'9'] then Key := #0
end;