mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-06 00:45:32 +00:00
617 lines
18 KiB
ObjectPascal
617 lines
18 KiB
ObjectPascal
(*
|
|
Name: VKeyChars
|
|
Copyright: Copyright (C) SIL International.
|
|
Documentation:
|
|
Description:
|
|
Create Date: 6 Apr 2010
|
|
|
|
Modified Date: 6 Apr 2010
|
|
Authors: mcdurdin
|
|
Related Files:
|
|
Dependencies:
|
|
|
|
Bugs:
|
|
Todo:
|
|
Notes:
|
|
History: 06 Apr 2010 - mcdurdin - I2200 - Mnemonic layouts and OSK
|
|
*)
|
|
unit VKeyChars;
|
|
|
|
interface
|
|
|
|
const SUSVkeyChars: array[0..1,0..255] of Char = (
|
|
(
|
|
#$0, //'??00', // &H0
|
|
#$0, //'?Left Mouse Button', // &H1
|
|
#$0, //'?Right Mouse Button', // &H2
|
|
#$0, //'?Ctrl+Break', // &H3
|
|
#$0, //'?Middle Mouse Button', // &H4
|
|
#$0, //'?05', // &H5
|
|
#$0, //'?06', // &H6
|
|
#$0, //'?07', // &H7
|
|
#$8, //'Backspace', // &H8
|
|
#$9, //'Tab', // &H9
|
|
#$0, //'?0A', // &HA
|
|
#$0, //'?0B', // &HB
|
|
#$0, //'Key Pad 5', // &HC
|
|
#$D, //'Enter', // &HD
|
|
#$0, //'??0E', // &HE
|
|
#$0, //'??0F', // &HF
|
|
#$0, //'??Shift', // &H10
|
|
#$0, //'??Control', // &H11
|
|
#$0, //'??Alt', // &H12
|
|
#$0, //'?Pause', // &H13
|
|
#$0, //'??Caps Lock', // &H14
|
|
#$0, //'??KANJI?15', // &H15
|
|
#$0, //'??KANJI?16', // &H16
|
|
#$0, //'??KANJI?17', // &H17
|
|
#$0, //'??KANJI?18', // &H18
|
|
#$0, //'??KANJI?19', // &H19
|
|
#$0, //'??1A', // &H1A
|
|
#$1B, //'Escape', // &H1B
|
|
#$0, //'??KANJI?1C', // &H1C
|
|
#$0, //'??KANJI?1D', // &H1D
|
|
#$0, //'??KANJI?1E', // &H1E
|
|
#$0, //'??KANJI?1F', // &H1F
|
|
' ', //'Spacebar', // &H20
|
|
#$0, //'?Page Up', // &H21
|
|
#$0, //'?Page Down', // &H22
|
|
#$0, //'?End', // &H23
|
|
#$0, //'?Home', // &H24
|
|
#$0, //'?Left Arrow', // &H25
|
|
#$0, //'?Up Arrow', // &H26
|
|
#$0, //'?Right Arrow', // &H27
|
|
#$0, //'?Down Arrow', // &H28
|
|
#$0, //'??Select', // &H29
|
|
#$0, //'??PRINT', // &H2A
|
|
#$0, //'??Execute', // &H2B
|
|
#$0, //'?Print Screen', // &H2C
|
|
#$0, //'?Insert', // &H2D
|
|
#$0, //'?Delete', // &H2E
|
|
#$0, //'??Help', // &H2F
|
|
'0', // &H30
|
|
'1', // &H31
|
|
'2', // &H32
|
|
'3', // &H33
|
|
'4', // &H34
|
|
'5', // &H35
|
|
'6', // &H36
|
|
'7', // &H37
|
|
'8', // &H38
|
|
'9', // &H39
|
|
#$0, //'??3A', // &H3A
|
|
#$0, //'??3B', // &H3B
|
|
#$0, //'??3C', // &H3C
|
|
#$0, //'??3D', // &H3D
|
|
#$0, //'??3E', // &H3E
|
|
#$0, //'??3F', // &H3F
|
|
#$0, //'??40', // &H40
|
|
|
|
'a', // &H41
|
|
'b', // &H42
|
|
'c', // &H43
|
|
'd', // &H44
|
|
'e', // &H45
|
|
'f', // &H46
|
|
'g', // &H47
|
|
'h', // &H48
|
|
'i', // &H49
|
|
'j', // &H4A
|
|
'k', // &H4B
|
|
'l', // &H4C
|
|
'm', // &H4D
|
|
'n', // &H4E
|
|
'o', // &H4F
|
|
'p', // &H50
|
|
'q', // &H51
|
|
'r', // &H52
|
|
's', // &H53
|
|
't', // &H54
|
|
'u', // &H55
|
|
'v', // &H56
|
|
'w', // &h57
|
|
'x', // &H58
|
|
'y', // &H59
|
|
'z', // &H5A
|
|
#$0, //'??5B', // &H5B
|
|
#$0, //'??5C', // &H5C
|
|
#$0, //'??5D', // &H5D
|
|
#$0, //'??5E', // &H5E
|
|
#$0, //'??5F', // &H5F
|
|
#$0, //'?Number Pad 0', // &H60
|
|
#$0, //'?Number Pad 1', // &H61
|
|
#$0, //'?Number Pad 2', // &H62
|
|
#$0, //'?Number Pad 3', // &H63
|
|
#$0, //'?Number Pad 4', // &H64
|
|
#$0, //'?Number Pad 5', // &H65
|
|
#$0, //'?Number Pad 6', // &H66
|
|
#$0, //'?Number Pad 7', // &H67
|
|
#$0, //'?Number Pad 8', // &H68
|
|
#$0, //'?Number Pad 9', // &H69
|
|
#$0, //'?Number Pad *', // &H6A
|
|
#$0, //'?Number Pad +', // &H6B
|
|
#$0, //'??Separator', // &H6C
|
|
#$0, //'?Number Pad -', // &H6D
|
|
#$0, //'?Number Pad .', // &H6E
|
|
#$0, //'?Number Pad /', // &H6F
|
|
#$0, //'?F1', // &H70
|
|
#$0, //'?F2', // &H71
|
|
#$0, //'?F3', // &H72
|
|
#$0, //'?F4', // &H73
|
|
#$0, //'?F5', // &H74
|
|
#$0, //'?F6', // &H75
|
|
#$0, //'?F7', // &H76
|
|
#$0, //'?F8', // &H77
|
|
#$0, //'?F9', // &H78
|
|
#$0, //'?F10', // &H79
|
|
#$0, //'?F11', // &H7A
|
|
#$0, //'?F12', // &H7B
|
|
#$0, //'??F13', // &H7C
|
|
#$0, //'??F14', // &H7D
|
|
#$0, //'??F15', // &H7E
|
|
#$0, //'??F16', // &H7F
|
|
#$0, //'??F17', // &H80
|
|
#$0, //'??F18', // &H81
|
|
#$0, //'??F19', // &H82
|
|
#$0, //'??F20', // &H83
|
|
#$0, //'??F21', // &H84
|
|
#$0, //'??F22', // &H85
|
|
#$0, //'??F23', // &H86
|
|
#$0, //'??F24', // &H87
|
|
|
|
#$0, //'??88', // &H88
|
|
#$0, //'??89', // &H89
|
|
#$0, //'??8A', // &H8A
|
|
#$0, //'??8B', // &H8B
|
|
#$0, //'??8C', // &H8C
|
|
#$0, //'??8D', // &H8D
|
|
#$0, //'??8E', // &H8E
|
|
#$0, //'??8F', // &H8F
|
|
|
|
#$0, //'??Num Lock', // &H90
|
|
#$0, //'??Scroll Lock', // &H91
|
|
|
|
#$0, //'?92', // &H92
|
|
#$0, //'?93', // &H93
|
|
#$0, //'?94', // &H94
|
|
#$0, //'?95', // &H95
|
|
#$0, //'?96', // &H96
|
|
#$0, //'?97', // &H97
|
|
#$0, //'?98', // &H98
|
|
#$0, //'?99', // &H99
|
|
#$0, //'?9A', // &H9A
|
|
#$0, //'?9B', // &H9B
|
|
#$0, //'?9C', // &H9C
|
|
#$0, //'?9D', // &H9D
|
|
#$0, //'?9E', // &H9E
|
|
#$0, //'?9F', // &H9F
|
|
#$0, //'?A0', // &HA0
|
|
#$0, //'?A1', // &HA1
|
|
#$0, //'?A2', // &HA2
|
|
#$0, //'?A3', // &HA3
|
|
#$0, //'?A4', // &HA4
|
|
#$0, //'?A5', // &HA5
|
|
#$0, //'?A6', // &HA6
|
|
#$0, //'?A7', // &HA7
|
|
#$0, //'?A8', // &HA8
|
|
#$0, //'?A9', // &HA9
|
|
#$0, //'?AA', // &HAA
|
|
#$0, //'?AB', // &HAB
|
|
#$0, //'?AC', // &HAC
|
|
#$0, //'?AD', // &HAD
|
|
#$0, //'?AE', // &HAE
|
|
#$0, //'?AF', // &HAF
|
|
#$0, //'?B0', // &HB0
|
|
#$0, //'?B1', // &HB1
|
|
#$0, //'?B2', // &HB2
|
|
#$0, //'?B3', // &HB3
|
|
#$0, //'?B4', // &HB4
|
|
#$0, //'?B5', // &HB5
|
|
#$0, //'?B6', // &HB6
|
|
#$0, //'?B7', // &HB7
|
|
#$0, //'?B8', // &HB8
|
|
#$0, //'?B9', // &HB9
|
|
|
|
';', // &HBA
|
|
'=', // &HBB
|
|
',', // &HBC
|
|
'-', // &HBD
|
|
'.', // &HBE
|
|
'/', // &HBF
|
|
'`', // &HC0
|
|
|
|
#$0, //'??C1', // &HC1
|
|
#$0, //'??C2', // &HC2
|
|
#$0, //'??C3', // &HC3
|
|
#$0, //'??C4', // &HC4
|
|
#$0, //'??C5', // &HC5
|
|
#$0, //'??C6', // &HC6
|
|
#$0, //'??C7', // &HC7
|
|
#$0, //'??C8', // &HC8
|
|
#$0, //'??C9', // &HC9
|
|
#$0, //'??CA', // &HCA
|
|
#$0, //'??CB', // &HCB
|
|
#$0, //'??CC', // &HCC
|
|
#$0, //'??CD', // &HCD
|
|
#$0, //'??CE', // &HCE
|
|
#$0, //'??CF', // &HCF
|
|
#$0, //'??D0', // &HD0
|
|
#$0, //'??D1', // &HD1
|
|
#$0, //'??D2', // &HD2
|
|
#$0, //'??D3', // &HD3
|
|
#$0, //'??D4', // &HD4
|
|
#$0, //'??D5', // &HD5
|
|
#$0, //'??D6', // &HD6
|
|
#$0, //'??D7', // &HD7
|
|
#$0, //'??D8', // &HD8
|
|
#$0, //'??D9', // &HD9
|
|
#$0, //'??DA', // &HDA
|
|
|
|
'[', // &HDB
|
|
'\', // &HDC
|
|
']', // &HDD
|
|
'''', // &HDE
|
|
|
|
#$0, //'??DF', // &HDF
|
|
#$0, //'??E0', // &HE0
|
|
#$0, //'??E1', // &HE1
|
|
#$0, //'??E2', // &HE2 102nd key
|
|
#$0, //'??E3', // &HE3
|
|
#$0, //'??E4', // &HE4
|
|
|
|
#$0, //'??E5', // &HE5
|
|
|
|
#$0, //'??E6', // &HE6
|
|
|
|
#$0, //'??E7', // &HE7
|
|
#$0, //'??E8', // &HE8
|
|
|
|
#$0, //'??E9', // &HE9
|
|
#$0, //'??EA', // &HEA
|
|
#$0, //'??EB', // &HEB
|
|
#$0, //'??EC', // &HEC
|
|
#$0, //'??ED', // &HED
|
|
#$0, //'??EE', // &HEE
|
|
#$0, //'??EF', // &HEF
|
|
#$0, //'??F0', // &HF0
|
|
#$0, //'??F1', // &HF1
|
|
#$0, //'??F2', // &HF2
|
|
#$0, //'??F3', // &HF3
|
|
#$0, //'??F4', // &HF4
|
|
#$0, //'??F5', // &HF5
|
|
|
|
#$0, //'??F6', // &HF6
|
|
#$0, //'??F7', // &HF7
|
|
#$0, //'??F8', // &HF8
|
|
#$0, //'??F9', // &HF9
|
|
#$0, //'??FA', // &HFA
|
|
#$0, //'??FB', // &HFB
|
|
#$0, //'??FC', // &HFC
|
|
#$0, //'??FD', // &HFD
|
|
#$0, //'??FE', // &HFE
|
|
#$0 //'??FF' // &HFF
|
|
),
|
|
(
|
|
#$0, //'??00', // &H0
|
|
#$0, //'?Left Mouse Button', // &H1
|
|
#$0, //'?Right Mouse Button', // &H2
|
|
#$0, //'?Ctrl+Break', // &H3
|
|
#$0, //'?Middle Mouse Button', // &H4
|
|
#$0, //'?05', // &H5
|
|
#$0, //'?06', // &H6
|
|
#$0, //'?07', // &H7
|
|
#$8, //'Backspace', // &H8
|
|
#$9, //'Tab', // &H9
|
|
#$0, //'?0A', // &HA
|
|
#$0, //'?0B', // &HB
|
|
#$0, //'Key Pad 5', // &HC
|
|
#$D, //'Enter', // &HD
|
|
#$0, //'??0E', // &HE
|
|
#$0, //'??0F', // &HF
|
|
#$0, //'??Shift', // &H10
|
|
#$0, //'??Control', // &H11
|
|
#$0, //'??Alt', // &H12
|
|
#$0, //'?Pause', // &H13
|
|
#$0, //'??Caps Lock', // &H14
|
|
#$0, //'??KANJI?15', // &H15
|
|
#$0, //'??KANJI?16', // &H16
|
|
#$0, //'??KANJI?17', // &H17
|
|
#$0, //'??KANJI?18', // &H18
|
|
#$0, //'??KANJI?19', // &H19
|
|
#$0, //'??1A', // &H1A
|
|
#$1B, //'Escape', // &H1B
|
|
#$0, //'??KANJI?1C', // &H1C
|
|
#$0, //'??KANJI?1D', // &H1D
|
|
#$0, //'??KANJI?1E', // &H1E
|
|
#$0, //'??KANJI?1F', // &H1F
|
|
' ', //'Spacebar', // &H20
|
|
#$0, //'?Page Up', // &H21
|
|
#$0, //'?Page Down', // &H22
|
|
#$0, //'?End', // &H23
|
|
#$0, //'?Home', // &H24
|
|
#$0, //'?Left Arrow', // &H25
|
|
#$0, //'?Up Arrow', // &H26
|
|
#$0, //'?Right Arrow', // &H27
|
|
#$0, //'?Down Arrow', // &H28
|
|
#$0, //'??Select', // &H29
|
|
#$0, //'??PRINT', // &H2A
|
|
#$0, //'??Execute', // &H2B
|
|
#$0, //'?Print Screen', // &H2C
|
|
#$0, //'?Insert', // &H2D
|
|
#$0, //'?Delete', // &H2E
|
|
#$0, //'??Help', // &H2F
|
|
')', // &H30
|
|
'!', // &H31
|
|
'@', // &H32
|
|
'#', // &H33
|
|
'$', // &H34
|
|
'%', // &H35
|
|
'^', // &H36
|
|
'&', // &H37
|
|
'*', // &H38
|
|
'(', // &H39
|
|
#$0, //'??3A', // &H3A
|
|
#$0, //'??3B', // &H3B
|
|
#$0, //'??3C', // &H3C
|
|
#$0, //'??3D', // &H3D
|
|
#$0, //'??3E', // &H3E
|
|
#$0, //'??3F', // &H3F
|
|
#$0, //'??40', // &H40
|
|
|
|
'A', // &H41
|
|
'B', // &H42
|
|
'C', // &H43
|
|
'D', // &H44
|
|
'E', // &H45
|
|
'F', // &H46
|
|
'G', // &H47
|
|
'H', // &H48
|
|
'I', // &H49
|
|
'J', // &H4A
|
|
'K', // &H4B
|
|
'L', // &H4C
|
|
'M', // &H4D
|
|
'N', // &H4E
|
|
'O', // &H4F
|
|
'P', // &H50
|
|
'Q', // &H51
|
|
'R', // &H52
|
|
'S', // &H53
|
|
'T', // &H54
|
|
'U', // &H55
|
|
'V', // &H56
|
|
'W', // &h57
|
|
'X', // &H58
|
|
'Y', // &H59
|
|
'Z', // &H5A
|
|
#$0, //'??5B', // &H5B
|
|
#$0, //'??5C', // &H5C
|
|
#$0, //'??5D', // &H5D
|
|
#$0, //'??5E', // &H5E
|
|
#$0, //'??5F', // &H5F
|
|
#$0, //'?Number Pad 0', // &H60
|
|
#$0, //'?Number Pad 1', // &H61
|
|
#$0, //'?Number Pad 2', // &H62
|
|
#$0, //'?Number Pad 3', // &H63
|
|
#$0, //'?Number Pad 4', // &H64
|
|
#$0, //'?Number Pad 5', // &H65
|
|
#$0, //'?Number Pad 6', // &H66
|
|
#$0, //'?Number Pad 7', // &H67
|
|
#$0, //'?Number Pad 8', // &H68
|
|
#$0, //'?Number Pad 9', // &H69
|
|
#$0, //'?Number Pad *', // &H6A
|
|
#$0, //'?Number Pad +', // &H6B
|
|
#$0, //'??Separator', // &H6C
|
|
#$0, //'?Number Pad -', // &H6D
|
|
#$0, //'?Number Pad .', // &H6E
|
|
#$0, //'?Number Pad /', // &H6F
|
|
#$0, //'?F1', // &H70
|
|
#$0, //'?F2', // &H71
|
|
#$0, //'?F3', // &H72
|
|
#$0, //'?F4', // &H73
|
|
#$0, //'?F5', // &H74
|
|
#$0, //'?F6', // &H75
|
|
#$0, //'?F7', // &H76
|
|
#$0, //'?F8', // &H77
|
|
#$0, //'?F9', // &H78
|
|
#$0, //'?F10', // &H79
|
|
#$0, //'?F11', // &H7A
|
|
#$0, //'?F12', // &H7B
|
|
#$0, //'??F13', // &H7C
|
|
#$0, //'??F14', // &H7D
|
|
#$0, //'??F15', // &H7E
|
|
#$0, //'??F16', // &H7F
|
|
#$0, //'??F17', // &H80
|
|
#$0, //'??F18', // &H81
|
|
#$0, //'??F19', // &H82
|
|
#$0, //'??F20', // &H83
|
|
#$0, //'??F21', // &H84
|
|
#$0, //'??F22', // &H85
|
|
#$0, //'??F23', // &H86
|
|
#$0, //'??F24', // &H87
|
|
|
|
#$0, //'??88', // &H88
|
|
#$0, //'??89', // &H89
|
|
#$0, //'??8A', // &H8A
|
|
#$0, //'??8B', // &H8B
|
|
#$0, //'??8C', // &H8C
|
|
#$0, //'??8D', // &H8D
|
|
#$0, //'??8E', // &H8E
|
|
#$0, //'??8F', // &H8F
|
|
|
|
#$0, //'??Num Lock', // &H90
|
|
#$0, //'??Scroll Lock', // &H91
|
|
|
|
#$0, //'?92', // &H92
|
|
#$0, //'?93', // &H93
|
|
#$0, //'?94', // &H94
|
|
#$0, //'?95', // &H95
|
|
#$0, //'?96', // &H96
|
|
#$0, //'?97', // &H97
|
|
#$0, //'?98', // &H98
|
|
#$0, //'?99', // &H99
|
|
#$0, //'?9A', // &H9A
|
|
#$0, //'?9B', // &H9B
|
|
#$0, //'?9C', // &H9C
|
|
#$0, //'?9D', // &H9D
|
|
#$0, //'?9E', // &H9E
|
|
#$0, //'?9F', // &H9F
|
|
#$0, //'?A0', // &HA0
|
|
#$0, //'?A1', // &HA1
|
|
#$0, //'?A2', // &HA2
|
|
#$0, //'?A3', // &HA3
|
|
#$0, //'?A4', // &HA4
|
|
#$0, //'?A5', // &HA5
|
|
#$0, //'?A6', // &HA6
|
|
#$0, //'?A7', // &HA7
|
|
#$0, //'?A8', // &HA8
|
|
#$0, //'?A9', // &HA9
|
|
#$0, //'?AA', // &HAA
|
|
#$0, //'?AB', // &HAB
|
|
#$0, //'?AC', // &HAC
|
|
#$0, //'?AD', // &HAD
|
|
#$0, //'?AE', // &HAE
|
|
#$0, //'?AF', // &HAF
|
|
#$0, //'?B0', // &HB0
|
|
#$0, //'?B1', // &HB1
|
|
#$0, //'?B2', // &HB2
|
|
#$0, //'?B3', // &HB3
|
|
#$0, //'?B4', // &HB4
|
|
#$0, //'?B5', // &HB5
|
|
#$0, //'?B6', // &HB6
|
|
#$0, //'?B7', // &HB7
|
|
#$0, //'?B8', // &HB8
|
|
#$0, //'?B9', // &HB9
|
|
|
|
':', // &HBA
|
|
'+', // &HBB
|
|
'<', // &HBC
|
|
'_', // &HBD
|
|
'>', // &HBE
|
|
'?', // &HBF
|
|
'~', // &HC0
|
|
|
|
#$0, //'??C1', // &HC1
|
|
#$0, //'??C2', // &HC2
|
|
#$0, //'??C3', // &HC3
|
|
#$0, //'??C4', // &HC4
|
|
#$0, //'??C5', // &HC5
|
|
#$0, //'??C6', // &HC6
|
|
#$0, //'??C7', // &HC7
|
|
#$0, //'??C8', // &HC8
|
|
#$0, //'??C9', // &HC9
|
|
#$0, //'??CA', // &HCA
|
|
#$0, //'??CB', // &HCB
|
|
#$0, //'??CC', // &HCC
|
|
#$0, //'??CD', // &HCD
|
|
#$0, //'??CE', // &HCE
|
|
#$0, //'??CF', // &HCF
|
|
#$0, //'??D0', // &HD0
|
|
#$0, //'??D1', // &HD1
|
|
#$0, //'??D2', // &HD2
|
|
#$0, //'??D3', // &HD3
|
|
#$0, //'??D4', // &HD4
|
|
#$0, //'??D5', // &HD5
|
|
#$0, //'??D6', // &HD6
|
|
#$0, //'??D7', // &HD7
|
|
#$0, //'??D8', // &HD8
|
|
#$0, //'??D9', // &HD9
|
|
#$0, //'??DA', // &HDA
|
|
|
|
'{', // &HDB
|
|
'|', // &HDC
|
|
'}', // &HDD
|
|
'"', // &HDE
|
|
|
|
#$0, //'??DF', // &HDF
|
|
#$0, //'??E0', // &HE0
|
|
#$0, //'??E1', // &HE1
|
|
#$0, //'??E2', // &HE2
|
|
#$0, //'??E3', // &HE3
|
|
#$0, //'??E4', // &HE4
|
|
|
|
#$0, //'??E5', // &HE5
|
|
|
|
#$0, //'??E6', // &HE6
|
|
|
|
#$0, //'??E7', // &HE7
|
|
#$0, //'??E8', // &HE8
|
|
|
|
#$0, //'??E9', // &HE9
|
|
#$0, //'??EA', // &HEA
|
|
#$0, //'??EB', // &HEB
|
|
#$0, //'??EC', // &HEC
|
|
#$0, //'??ED', // &HED
|
|
#$0, //'??EE', // &HEE
|
|
#$0, //'??EF', // &HEF
|
|
#$0, //'??F0', // &HF0
|
|
#$0, //'??F1', // &HF1
|
|
#$0, //'??F2', // &HF2
|
|
#$0, //'??F3', // &HF3
|
|
#$0, //'??F4', // &HF4
|
|
#$0, //'??F5', // &HF5
|
|
|
|
#$0, //'??F6', // &HF6
|
|
#$0, //'??F7', // &HF7
|
|
#$0, //'??F8', // &HF8
|
|
#$0, //'??F9', // &HF9
|
|
#$0, //'??FA', // &HFA
|
|
#$0, //'??FB', // &HFB
|
|
#$0, //'??FC', // &HFC
|
|
#$0, //'??FD', // &HFD
|
|
#$0, //'??FE', // &HFE
|
|
#$0 //'??FF' // &HFF
|
|
));
|
|
|
|
type
|
|
TUSVKey = record
|
|
IsShift: Boolean;
|
|
VKey: Word;
|
|
end;
|
|
|
|
function CharToUSVKey(ch: AnsiChar): TUSVKey;
|
|
|
|
implementation
|
|
|
|
var
|
|
_CharToUSVKey: array[0..127] of TUSVKey;
|
|
_Initialized: Boolean = False;
|
|
|
|
procedure Init; forward;
|
|
|
|
function CharToUSVKey(ch: AnsiChar): TUSVKey;
|
|
begin
|
|
if Ord(ch) > 127 then
|
|
begin
|
|
Result.VKey := 0;
|
|
Result.IsShift := False;
|
|
Exit;
|
|
end;
|
|
|
|
if not _Initialized then
|
|
Init;
|
|
|
|
Result := _CharToUSVKey[Ord(ch)];
|
|
end;
|
|
|
|
procedure Init;
|
|
var
|
|
shift, vk: Integer;
|
|
ch: Char;
|
|
begin
|
|
_Initialized := True;
|
|
for shift := 0 to 1 do
|
|
begin
|
|
for vk := 0 to 255 do
|
|
begin
|
|
ch := SUSVkeyChars[shift, vk];
|
|
if ch <> #0 then
|
|
begin
|
|
_CharToUSVKey[Ord(ch)].IsShift := shift = 1;
|
|
_CharToUSVKey[Ord(ch)].VKey := vk;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end.
|