This works for me:

Code:
Form1.Keypreview:=true;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  memo1.Lines.Add(key); // key will automatically be in caps/non caps
end;