FKeyNameMap := TKeyNameMap.Create;
FKeyNameMap.add(VK_0, 'KEY 0');
FKeyNameMap.add(VK_1, 'KEY 1');
FKeyNameMap.add(VK_2, 'KEY 2');
FKeyNameMap.add(VK_3, 'KEY 3');
FKeyNameMap.add(VK_4, 'KEY 4');
FKeyNameMap.add(VK_5, 'KEY 5');
FKeyNameMap.add(VK_6, 'KEY 6');
FKeyNameMap.add(VK_7, 'KEY 7');
FKeyNameMap.add(VK_8, 'KEY 8');
FKeyNameMap.add(VK_9, 'KEY 9');
FKeyNameMap.add(VK_A, 'KEY A');
FKeyNameMap.add(VK_ACCEPT, 'KEY ACCEPT');
FKeyNameMap.add(VK_ADD, 'KEY ADD');
FKeyNameMap.add(VK_APPS, 'KEY APPS');
FKeyNameMap.add(VK_ATTN, 'KEY ATTN');
FKeyNameMap.add(VK_B, 'KEY B');
FKeyNameMap.add(VK_BACK, 'KEY BACK');
FKeyNameMap.add(VK_BROWSER_BACK, 'KEY BROWSER_BACK');
FKeyNameMap.add(VK_BROWSER_FAVORITES, 'KEY BROWSER_FAVORITES');
FKeyNameMap.add(VK_BROWSER_FORWARD, 'KEY BROWSER_FORWARD');
FKeyNameMap.add(VK_BROWSER_HOME, 'KEY BROWSER_HOME');
FKeyNameMap.add(VK_BROWSER_REFRESH, 'KEY BROWSER_REFRESH');
FKeyNameMap.add(VK_BROWSER_SEARCH, 'KEY BROWSER_SEARCH');
FKeyNameMap.add(VK_BROWSER_STOP, 'KEY BROWSER_STOP');
FKeyNameMap.add(VK_C, 'KEY C');
FKeyNameMap.add(VK_CANCEL, 'KEY CANCEL');
FKeyNameMap.add(VK_CAPITAL, 'KEY CAPITAL');
FKeyNameMap.add(VK_CLEAR, 'KEY CLEAR');
FKeyNameMap.add(VK_CONTROL, 'KEY CONTROL');
FKeyNameMap.add(VK_CONVERT, 'KEY CONVERT');
FKeyNameMap.add(VK_CRSEL, 'KEY CRSEL');
FKeyNameMap.add(VK_D, 'KEY D');
FKeyNameMap.add(VK_DECIMAL, 'KEY DECIMAL');
FKeyNameMap.add(VK_DELETE, 'KEY DELETE');
FKeyNameMap.add(VK_DIVIDE, 'KEY DIVIDE');
FKeyNameMap.add(VK_DOWN, 'KEY DOWN');
FKeyNameMap.add(VK_E, 'KEY E');
FKeyNameMap.add(VK_END, 'KEY END');
FKeyNameMap.add(VK_EREOF, 'KEY EREOF');
FKeyNameMap.add(VK_ESCAPE, 'KEY ESCAPE');
FKeyNameMap.add(VK_EXECUTE, 'KEY EXECUTE');
FKeyNameMap.add(VK_EXSEL, 'KEY EXSEL');
FKeyNameMap.add(VK_F, 'KEY F');
FKeyNameMap.add(VK_F1, 'KEY F1');
FKeyNameMap.add(VK_F10, 'KEY F10');
FKeyNameMap.add(VK_F11, 'KEY F11');
FKeyNameMap.add(VK_F12, 'KEY F12');
FKeyNameMap.add(VK_F13, 'KEY F13');
FKeyNameMap.add(VK_F14, 'KEY F14');
FKeyNameMap.add(VK_F15, 'KEY F15');
FKeyNameMap.add(VK_F16, 'KEY F16');
FKeyNameMap.add(VK_F17, 'KEY F17');
FKeyNameMap.add(VK_F18, 'KEY F18');
FKeyNameMap.add(VK_F19, 'KEY F19');
FKeyNameMap.add(VK_F2, 'KEY F2');
FKeyNameMap.add(VK_F20, 'KEY F20');
FKeyNameMap.add(VK_F21, 'KEY F21');
FKeyNameMap.add(VK_F22, 'KEY F22');
FKeyNameMap.add(VK_F23, 'KEY F23');
FKeyNameMap.add(VK_F24, 'KEY F24');
FKeyNameMap.add(VK_F3, 'KEY F3');
FKeyNameMap.add(VK_F4, 'KEY F4');
FKeyNameMap.add(VK_F5, 'KEY F5');
FKeyNameMap.add(VK_F6, 'KEY F6');
FKeyNameMap.add(VK_F7, 'KEY F7');
FKeyNameMap.add(VK_F8, 'KEY F8');
FKeyNameMap.add(VK_F9, 'KEY F9');
FKeyNameMap.add(VK_FINAL, 'KEY FINAL');
FKeyNameMap.add(VK_G, 'KEY G');
FKeyNameMap.add(VK_H, 'KEY H');
FKeyNameMap.add(VK_HANGUL, 'KEY HANGUL');
FKeyNameMap.add(VK_HANJA, 'KEY HANJA');
FKeyNameMap.add(VK_HELP, 'KEY HELP');
FKeyNameMap.add(VK_HIGHESTVALUE, 'KEY HIGHESTVALUE');
FKeyNameMap.add(VK_HOME, 'KEY HOME');
FKeyNameMap.add(VK_I, 'KEY I');
FKeyNameMap.add(VK_INSERT, 'KEY INSERT');
FKeyNameMap.add(VK_J, 'KEY J');
FKeyNameMap.add(VK_JUNJA, 'KEY JUNJA');
FKeyNameMap.add(VK_K, 'KEY K');
FKeyNameMap.add(VK_KANA, 'KEY KANA');
FKeyNameMap.add(VK_KANJI, 'KEY KANJI');
FKeyNameMap.add(VK_L, 'KEY L');
FKeyNameMap.add(VK_LAUNCH_APP1, 'KEY LAUNCH_APP1');
FKeyNameMap.add(VK_LAUNCH_APP2, 'KEY LAUNCH_APP2');
FKeyNameMap.add(VK_LAUNCH_MAIL, 'KEY LAUNCH_MAIL');
FKeyNameMap.add(VK_LAUNCH_MEDIA_SELECT, 'KEY LAUNCH_MEDIA_SELECT');
FKeyNameMap.add(VK_LBUTTON, 'KEY LBUTTON');
FKeyNameMap.add(VK_LCL_ALT, 'KEY LCL_ALT');
FKeyNameMap.add(VK_LCL_AT, 'KEY LCL_AT');
FKeyNameMap.add(VK_LCL_BACKSLASH, 'KEY LCL_BACKSLASH');
FKeyNameMap.add(VK_LCL_CALL, 'KEY LCL_CALL');
FKeyNameMap.add(VK_LCL_CAPSLOCK, 'KEY LCL_CAPSLOCK');
FKeyNameMap.add(VK_LCL_CLOSE_BRAKET, 'KEY LCL_CLOSE_BRAKET');
FKeyNameMap.add(VK_LCL_COMMA, 'KEY LCL_COMMA');
FKeyNameMap.add(VK_LCL_ENDCALL, 'KEY LCL_ENDCALL');
FKeyNameMap.add(VK_LCL_EQUAL, 'KEY LCL_EQUAL');
FKeyNameMap.add(VK_LCL_LALT, 'KEY LCL_LALT');
FKeyNameMap.add(VK_LCL_MINUS, 'KEY LCL_MINUS');
FKeyNameMap.add(VK_LCL_OPEN_BRAKET, 'KEY LCL_OPEN_BRAKET');
FKeyNameMap.add(VK_LCL_POINT, 'KEY LCL_POINT');
FKeyNameMap.add(VK_LCL_POWER, 'KEY LCL_POWER');
FKeyNameMap.add(VK_LCL_QUOTE, 'KEY LCL_QUOTE');
FKeyNameMap.add(VK_LCL_RALT, 'KEY LCL_RALT');
FKeyNameMap.add(VK_LCL_SEMI_COMMA, 'KEY LCL_SEMI_COMMA');
FKeyNameMap.add(VK_LCL_SLASH, 'KEY LCL_SLASH');
FKeyNameMap.add(VK_LCL_TILDE, 'KEY LCL_TILDE');
FKeyNameMap.add(VK_LCONTROL, 'KEY LCONTROL');
FKeyNameMap.add(VK_LEFT, 'KEY LEFT');
FKeyNameMap.add(VK_LMENU, 'KEY LMENU');
FKeyNameMap.add(VK_LSHIFT, 'KEY LSHIFT');
FKeyNameMap.add(VK_LWIN, 'KEY LWIN');
FKeyNameMap.add(VK_M, 'KEY M');
FKeyNameMap.add(VK_MBUTTON, 'KEY MBUTTON');
FKeyNameMap.add(VK_MEDIA_NEXT_TRACK, 'KEY MEDIA_NEXT_TRACK');
FKeyNameMap.add(VK_MEDIA_PLAY_PAUSE, 'KEY MEDIA_PLAY_PAUSE');
FKeyNameMap.add(VK_MEDIA_PREV_TRACK, 'KEY MEDIA_PREV_TRACK');
FKeyNameMap.add(VK_MEDIA_STOP, 'KEY MEDIA_STOP');
FKeyNameMap.add(VK_MENU, 'KEY MENU');
FKeyNameMap.add(VK_MODECHANGE, 'KEY MODECHANGE');
FKeyNameMap.add(VK_MULTIPLY, 'KEY MULTIPLY');
FKeyNameMap.add(VK_N, 'KEY N');
FKeyNameMap.add(VK_NEXT, 'KEY NEXT');
FKeyNameMap.add(VK_NONAME, 'KEY NONAME');
FKeyNameMap.add(VK_NONCONVERT, 'KEY NONCONVERT');
FKeyNameMap.add(VK_NUMLOCK, 'KEY NUMLOCK');
FKeyNameMap.add(VK_NUMPAD0, 'KEY NUMPAD0');
FKeyNameMap.add(VK_NUMPAD1, 'KEY NUMPAD1');
FKeyNameMap.add(VK_NUMPAD2, 'KEY NUMPAD2');
FKeyNameMap.add(VK_NUMPAD3, 'KEY NUMPAD3');
FKeyNameMap.add(VK_NUMPAD4, 'KEY NUMPAD4');
FKeyNameMap.add(VK_NUMPAD5, 'KEY NUMPAD5');
FKeyNameMap.add(VK_NUMPAD6, 'KEY NUMPAD6');
FKeyNameMap.add(VK_NUMPAD7, 'KEY NUMPAD7');
FKeyNameMap.add(VK_NUMPAD8, 'KEY NUMPAD8');
FKeyNameMap.add(VK_NUMPAD9, 'KEY NUMPAD9');
FKeyNameMap.add(VK_O, 'KEY O');
FKeyNameMap.add(VK_OEM_1, 'KEY OEM_1');
FKeyNameMap.add(VK_OEM_102, 'KEY OEM_102');
FKeyNameMap.add(VK_OEM_2, 'KEY OEM_2');
FKeyNameMap.add(VK_OEM_3, 'KEY OEM_3');
FKeyNameMap.add(VK_OEM_4, 'KEY OEM_4');
FKeyNameMap.add(VK_OEM_5, 'KEY OEM_5');
FKeyNameMap.add(VK_OEM_6, 'KEY OEM_6');
FKeyNameMap.add(VK_OEM_7, 'KEY OEM_7');
FKeyNameMap.add(VK_OEM_8, 'KEY OEM_8');
FKeyNameMap.add(VK_OEM_CLEAR, 'KEY OEM_CLEAR');
FKeyNameMap.add(VK_OEM_COMMA, 'KEY OEM_COMMA');
FKeyNameMap.add(VK_OEM_MINUS, 'KEY OEM_MINUS');
FKeyNameMap.add(VK_OEM_PERIOD, 'KEY OEM_PERIOD');
FKeyNameMap.add(VK_OEM_PLUS, 'KEY OEM_PLUS');
FKeyNameMap.add(VK_P, 'KEY P');
FKeyNameMap.add(VK_PA1, 'KEY PA1');
FKeyNameMap.add(VK_PAUSE, 'KEY PAUSE');
FKeyNameMap.add(VK_PLAY, 'KEY PLAY');
FKeyNameMap.add(VK_PRINT, 'KEY PRINT');
FKeyNameMap.add(VK_PRIOR, 'KEY PRIOR');
FKeyNameMap.add(VK_PROCESSKEY, 'KEY PROCESSKEY');
FKeyNameMap.add(VK_Q, 'KEY Q');
FKeyNameMap.add(VK_R, 'KEY R');
FKeyNameMap.add(VK_RBUTTON, 'KEY RBUTTON');
FKeyNameMap.add(VK_RCONTROL, 'KEY RCONTROL');
FKeyNameMap.add(VK_RETURN, 'KEY RETURN');
FKeyNameMap.add(VK_RIGHT, 'KEY RIGHT');
FKeyNameMap.add(VK_RMENU, 'KEY RMENU');
FKeyNameMap.add(VK_RSHIFT, 'KEY RSHIFT');
FKeyNameMap.add(VK_RWIN, 'KEY RWIN');
FKeyNameMap.add(VK_S, 'KEY S');
FKeyNameMap.add(VK_SCROLL, 'KEY SCROLL');
FKeyNameMap.add(VK_SELECT, 'KEY SELECT');
FKeyNameMap.add(VK_SEPARATOR, 'KEY SEPARATOR');
FKeyNameMap.add(VK_SHIFT, 'KEY SHIFT');
FKeyNameMap.add(VK_SLEEP, 'KEY SLEEP');
FKeyNameMap.add(VK_SNAPSHOT, 'KEY SNAPSHOT');
FKeyNameMap.add(VK_SPACE, 'KEY SPACE');
FKeyNameMap.add(VK_SUBTRACT, 'KEY SUBTRACT');
FKeyNameMap.add(VK_T, 'KEY T');
FKeyNameMap.add(VK_TAB, 'KEY TAB');
FKeyNameMap.add(VK_U, 'KEY U');
FKeyNameMap.add(VK_UNDEFINED, 'KEY UNDEFINED');
FKeyNameMap.add(VK_UNKNOWN, 'KEY UNKNOWN');
FKeyNameMap.add(VK_UP, 'KEY UP');
FKeyNameMap.add(VK_V, 'KEY V');
FKeyNameMap.add(VK_VOLUME_DOWN, 'KEY VOLUME_DOWN');
FKeyNameMap.add(VK_VOLUME_MUTE, 'KEY VOLUME_MUTE');
FKeyNameMap.add(VK_VOLUME_UP, 'KEY VOLUME_UP');
FKeyNameMap.add(VK_W, 'KEY W');
FKeyNameMap.add(VK_X, 'KEY X');
FKeyNameMap.add(VK_XBUTTON1, 'KEY XBUTTON1');
FKeyNameMap.add(VK_XBUTTON2, 'KEY XBUTTON2');
FKeyNameMap.add(VK_Y, 'KEY Y');
FKeyNameMap.add(VK_Z, 'KEY Z');
FKeyNameMap.add(VK_ZOOM, 'KEY ZOOM');
e infine nel gestore della pressione dei tasti (onKeyQualcheCosa)