Delphi 将字符串转换为VKCode:不兼容的类型:“整数”和“字符串”
我正在尝试使用引用将字符串转换为VKCode,但在尝试编译时,出现以下错误: E2001需要序号类型 E2010不兼容类型:“整数”和“字符串” 这意味着此处使用not的大小写表达式Delphi 将字符串转换为VKCode:不兼容的类型:“整数”和“字符串”,delphi,switch-statement,delphi-10.3-rio,Delphi,Switch Statement,Delphi 10.3 Rio,我正在尝试使用引用将字符串转换为VKCode,但在尝试编译时,出现以下错误: E2001需要序号类型 E2010不兼容类型:“整数”和“字符串” 这意味着此处使用not的大小写表达式 function VKStringToWord(const aVKstring: string): Word; begin if aVKstring = '' then Exit(0); case UpperCase(aVKstring) of 'VK_A': Result :=
function VKStringToWord(const aVKstring: string): Word;
begin
if aVKstring = '' then
Exit(0);
case UpperCase(aVKstring) of
'VK_A':
Result := $41;
else
Result := 0;
end;
end;
正确,不能对字符串使用大小写。根据报告:
selectorExpression是任何序号类型的表达式
我的。字符串不是顺序类型
但是,您可以做的是:
函数VKStringToWordconst AVKString:string:Word;
常数
数据:记录的数组[0..192]
键:字符串;
瓦尔:字
结束=
键:“VK_0”;增值税:30美元,
键:“VK_1”;增值税:31美元,
关键词:“VK_2”;增值税:32美元,
关键词:“VK_3”;瓦尔:33美元,
关键词:“VK_4”;瓦尔:34美元,
关键词:“VK_5”;瓦尔:35美元,
关键词:“VK_6”;Val:$36,
关键词:“VK_7”;瓦尔:37美元,
关键词:“VK_8”;瓦尔:38美元,
关键词:“VK_9”;增值税:39美元,
关键词:“VK_A”;瓦尔:41美元,
键:“VK_接受”;瓦尔:30,
键:“VK_添加”;瓦尔:107,
关键词:“VK_应用程序”;瓦尔:5天,
关键词:“VK_附件”;Val:$F6,
键:“VK_B”;增值税:42美元,
键:“VK_后退”;瓦尔:8,
键:“VK_浏览器_返回”;Val:$A6,
键:“VK_浏览器_收藏夹”;瓦尔:$AB,
键:“VK_浏览器_前进”;Val:$A7,
键:“VK_浏览器_主页”;Val:$AC,
键:“VK_浏览器_刷新”;Val:$A8,
关键字:“VK_浏览器_搜索”;Val:$AA,
键:“VK_浏览器_停止”;Val:$A9,
关键词:“VK_C”;瓦尔:43美元,
键:“VK_取消”;瓦尔:3,
关键词:“VK_资本”;瓦尔:20,
键:“VK_清除”;瓦尔:12,
键:“VK_控制”;瓦尔:17,
键:“VK_CONVERT”;瓦尔:28,
关键词:“VK_CRSEL”;Val:$F7,
关键词:“VK_D”;瓦尔:44美元,
键:“VK_十进制”;瓦尔:110,
键:“VK_DELETE”;瓦尔:46,
关键词:“VK_DIVIDE”;瓦尔:111,
键:“VK_向下”;瓦尔:40,
关键词:“VK_E”;瓦尔:45美元,
键:“VK_END”;瓦尔:35,
关键词:“VK_EREOF”;Val:$F9,
钥匙:“VK_逃生”;瓦尔:27,
键:“VK_执行”;瓦尔:43,
键:“VK_EXSEL”;Val:$F8,
关键词:“VK_F”;Val:$46,
键:“VK_F1”;瓦尔:112,
键:“VK_F10”;瓦尔:121,
键:“VK_F11”;瓦尔:122,
关键词:“VK_F12”;瓦尔:123,
关键词:“VK_F13”;瓦尔:124,
关键词:“VK_F14”;瓦尔:125,
关键词:“VK_F15”;瓦尔:126,
关键词:“VK_F16”;瓦尔:127,
关键词:“VK_F17”;瓦尔:128,
关键词:“VK_F18”;瓦尔:129,
关键词:“VK_F19”;瓦尔:130,
键:“VK_F2”;瓦尔:113,
键:“VK_F20”;瓦尔:131,
键:“VK_F21”;瓦尔:132,
关键词:“VK_F22”;瓦尔:133,
关键词:“VK_F23”;瓦尔:134,
关键词:“VK_F24”;瓦尔:135,
关键词:“VK_F3”;瓦尔:114,
关键词:“VK_F4”;瓦尔:115,
键:“VK_F5”;瓦尔:116,
关键词:“VK_F6”;瓦尔:117,
键:“VK_F7”;瓦尔:118,
键:“VK_F8”;瓦尔:119,
关键词:“VK_F9”;瓦尔:120,
关键:“VK_决赛”;瓦尔:24,
键:“VK_G”;瓦尔:47美元,
键:“VK_H”;瓦尔:48美元,
关键词:“VK_HANGUL”;瓦尔:21,
关键词:“VK_HANJA”;瓦尔:25,
关键词:“VK_帮助”;瓦尔:47,
关键词:“VK_最高值”;Val:$FFFF,
键:“VK_主页”;瓦尔:36,
关键词:“VK_I”;增值税:49美元,
键:“VK_插入”;瓦尔:45,
关键词:“VK_J”;增值税:4A美元,
关键词:“VK_JUNJA”;瓦尔:23,
键:“VK_K”;增值税:40亿美元,
键:“VK_KANA”;瓦尔:21,
关键词:“VK_汉字”;瓦尔:25,
键:“VK_L”;Val:$4C,
键:“VK_启动_APP1”;Val:$B6,
关键词:“VK_发布应用程序2”;Val:$B7,
关键词:“VK_发布_邮件”;Val:$B4,
键:“VK_启动_媒体_选择”;Val:$B5,
键:“VK_LBUTTON”;瓦尔:1,
键:“VK_LCL_ALT”;瓦尔:18,
键:“VK_LCL_AT”
; Val:$103,
键:“VK_LCL_反斜杠”;Val:$DC,
键:“VK_LCL_呼叫”;瓦尔:101美元,
关键词:“VK_LCL_CAPSLOCK”;瓦尔:20,
关键词:“VK_LCL_CLOSE_BRAKET”;瓦尔:$DD,
键:“VK_LCL_逗号”;瓦尔:$BC,
键:“VK_LCL_ENDCALL”;增值税:102美元,
关键字:“VK_LCL_EQUAL”;瓦尔:$BB,
关键词:“VK_LCL_LALT”;Val:$A4,
键:“VK_LCL_减号”;Val:$BD,
关键词:“VK_LCL_OPEN_BRAKET”;Val:$DB,
键:“VK_LCL_点”;瓦尔:$BE,
关键词:“VK_LCL_电源”;瓦尔:100美元,
关键词:“VK_LCL_报价”;瓦尔:$DE,
关键词:“VK_LCL_RALT”;增值税:5美元,
关键词:“VK_LCL_SEMI_逗号”;瓦尔:$BA,
关键词:“VK_LCL_斜线”;瓦尔:$BF,
关键词:“VK_LCL_TILDE”;Val:$C0,
键:“VK_LCONTROL”;Val:$A2,
键:“VK_左”;瓦尔:37,
关键词:“VK_LMENU”;Val:$A4,
键:“VK_LSHIFT”;Val:$A0,
关键词:“VK_LWIN”;增值税:50亿美元,
键:“VK_M”;Val:$4D,
关键词:“VK_MBUTTON”;瓦尔:4,
关键词:“VK_媒体_下一首歌”;Val:$B0,
键:“VK_媒体_播放_暂停”;Val:$B3,
关键词:“VK_媒体_上一曲目”;Val:$B1,
键:“VK_媒体_停止”;Val:$B2,
键:“VK_菜单”;瓦尔:18,
键:“VK_模式更改”;瓦尔:31,
键:“VK_乘法”;瓦尔:106,
键:“VK_N”;Val:$4E,
键:“下一个VK_”;瓦尔:34,
关键词:“VK_NONAME”;Val:$FC,
键:“VK_非转换”;瓦尔:29,
关键词:“VK_NUMLOCK”;增值税:90美元,
关键词:“VK_NUMPAD0”;瓦尔:96,
关键词:“VK_NUMPAD1”;瓦尔:97,
关键词:“VK_NUMPAD2”;瓦尔:98,
关键词:“VK_NUMPAD3”;瓦尔:99,
关键词:“VK_NUMPAD4”;瓦尔:100,
关键词:“VK_NUMPAD5”;瓦尔:101,
关键词:“VK_NUMPAD6”;瓦尔:102,
关键词:“VK_NUMPAD7”;瓦尔:103,
关键词:“VK_NUMPAD8”;瓦尔:104,
关键词:“VK_NUMPAD9”;瓦尔:105,
关键词:“VK_O”;Val:$4F,
关键词:“VK_OEM_1”;瓦尔:$BA,
关键词:“VK_OEM_102”;Val:$E2,
关键词:“VK_OEM_2”;瓦尔:$BF,
关键词:“VK_OEM_3”;Val:$C0,
关键词:“VK_OEM_4”;Val:$DB,
关键词:“VK_OEM_5”;Val:$DC,
关键词:“VK_OEM_6”;瓦尔:$DD,
关键词:“VK_OEM_7”;瓦尔:$DE,
关键词:“VK_OEM_8”;Val:$DF,
键:“VK_OEM_清除”;Val:$FE,
关键词:“VK_OEM_逗号”;瓦尔:$BC,
键:“VK_OEM_减号”;Val:$BD,
关键词:“VK_OEM_期”;瓦尔:$BE,
关键词:“VK_OEM_PLUS”;瓦尔:$BB,
键:“VK_P”;增值税:50美元,
关键词:“VK_PA1”;Val:$FD,
键:“暂停”;瓦尔:19,
关键:“VK_游戏”;Val:$FA,
关键词:“VK_打印”;瓦尔:42,
关键词:“VK_PRIOR”;瓦尔:33,
Key:'VK_PROCESSKEY';Val:$E7,
关键词:“VK_Q”;瓦尔:51美元,
键:“VK_R”;瓦尔:52美元,
键:“VK_RBUTTON”;瓦尔:2,
键:“VK_RCONTROL”;增值税:3美元,
键:“VK_返回”;瓦尔:13,
关键词:“VK_RIGHT”;瓦尔:39,
键:“VK_RMENU”;增值税:5美元,
键:“VK_换档”;Val:$A1,
关键词:“VK_RWIN”;增值税:5美分,
关键词:“VK_S”;瓦尔:53美元,
键:“VK_滚动”;瓦尔:91美元,
键:“VK_选择”;瓦尔:41,
键:“VK_分离器”;瓦尔:108,
键:“VK_移位”;瓦尔:16,
关键词:“VK_睡眠”;Val:$5F,
键:“VK_快照”;瓦尔:44,
键:“VK_空间”;瓦尔:32,
键:“VK_减法”;瓦尔:109,
关键词:“VK_T”;瓦尔:54美元,
键:“VK_选项卡”;瓦尔:9,
关键词:“VK_”;瓦尔:55美元,
键:“VK_未定义”;Val:$FF,
关键词:“VK_未知”;瓦尔:0,
键:“VK_UP”;瓦尔:38,
键:“VK_V”;Val:$56,
键:“VK_音量下降”;瓦尔:$AE,
按键:“VK_音量_静音”;瓦尔:$AD,
键:“VK_音量向上”;Val:$AF,
键:“VK_W”;Val:$57,
键:“VK_X”;瓦尔:58美元,
键:“VK_XBUTTON1”;瓦尔:5,
键:“VK_XBUTTON2”;瓦尔:6,
键:“VK_Y”;瓦尔:59美元,
键:“VK_Z”;Val:$5A,
键:“VK_缩放”;Val:$FB
;
开始
对于数据do中的var VK
如果是SameTextVK.Key,则为AVK
然后串
ExitVK.Val;
结果:=0;
终止
正确,不能对字符串使用大小写。根据报告:
selectorExpression是任何序号类型的表达式
我的。字符串不是顺序类型
但是,您可以做的是:
函数VKStringToWordconst AVKString:string:Word;
常数
数据:记录的数组[0..192]
键:字符串;
瓦尔:字
结束=
键:“VK_0”;增值税:30美元,
键:“VK_1”;增值税:31美元,
关键词:“VK_2”;增值税:32美元,
关键词:“VK_3”;瓦尔:33美元,
关键词:“VK_4”;瓦尔:34美元,
关键词:“VK_5”;瓦尔:35美元,
关键词:“VK_6”;Val:$36,
关键词:“VK_7”;瓦尔:37美元,
关键词:“VK_8”;瓦尔:38美元,
关键词:“VK_9”;增值税:39美元,
关键词:“VK_A”;瓦尔:41美元,
键:“VK_接受”;瓦尔:30,
键:“VK_添加”;瓦尔:107,
关键词:“VK_应用程序”;瓦尔:5天,
关键词:“VK_附件”;Val:$F6,
键:“VK_B”;增值税:42美元,
键:“VK_后退”;瓦尔:8,
键:“VK_浏览器_返回”;Val:$A6,
键:“VK_浏览器_收藏夹”;瓦尔:$AB,
键:“VK_浏览器_前进”;Val:$A7,
键:“VK_浏览器_主页”;Val:$AC,
键:“VK_浏览器_刷新”;Val:$A8,
关键字:“VK_浏览器_搜索”;Val:$AA,
键:“VK_浏览器_停止”;Val:$A9,
关键词:“VK_C”;瓦尔:43美元,
键:“VK_取消”;瓦尔:3,
关键词:“VK_资本”;瓦尔:20,
键:“VK_清除”;瓦尔:12,
键:“VK_控制”;瓦尔:17,
键:“VK_CONVERT”;瓦尔:28,
关键词:“VK_CRSEL”;Val:$F7,
关键词:“VK_D”;瓦尔:44美元,
键:“VK_十进制”;瓦尔:110,
键:“VK_DELETE”;瓦尔:46,
关键词:“VK_DIVIDE”;瓦尔:111,
键:“VK_向下”;瓦尔:40,
关键词:“VK_E”;瓦尔:45美元,
键:“VK_END”;瓦尔:35,
关键词:“VK_EREOF”;Val:$F9,
钥匙:“VK_逃生”;瓦尔:27,
键:“VK_执行”;瓦尔:43,
键:“VK_EXSEL”;Val:$F8,
关键词:“VK_F”;Val:$46,
键:“VK_F1”;瓦尔:112,
键:“VK_F10”;瓦尔:121,
键:“VK_F11”;瓦尔:122,
关键词:“VK_F12”;瓦尔:123,
关键词:“VK_F13”;瓦尔:124,
关键词:“VK_F14”;瓦尔:125,
关键词:“VK_F15”;瓦尔:126,
关键词:“VK_F16”;瓦尔:127,
关键词:“VK_F17”;瓦尔:128,
关键词:“VK_F18”;瓦尔:129,
关键词:“VK_F19”;瓦尔:130,
键:“VK_F2”;瓦尔:113,
键:“VK_F20”;瓦尔:131,
键:“VK_F21”;瓦尔:132,
关键词:“VK_F22”;瓦尔:133,
关键词:“VK_F23”;瓦尔:134,
关键词:“VK_F24”;瓦尔:135,
关键词:“VK_F3”;瓦尔:114,
关键词:“VK_F4”;瓦尔:115,
键:“VK_F5”;瓦尔:116,
关键词:“VK_F6”;瓦尔:117,
键:“VK_F7”;瓦尔:118,
键:“VK_F8”;瓦尔:119,
关键词:“VK_F9”;瓦尔:120,
关键:“VK_决赛”;瓦尔:24,
键:“VK_G”;瓦尔:47美元,
键:“VK_H”;瓦尔:48美元,
关键词:“VK_HANGUL”;瓦尔:21,
关键词:“VK_HANJA”;瓦尔:25,
关键词:“VK_帮助”;瓦尔:47,
关键词:“VK_最高值”;Val:$FFFF,
键:“VK_主页”;瓦尔:36,
关键词:“VK_I”;增值税:49美元,
键:“VK_插入”;瓦尔:45,
关键词:“VK_J”;增值税:4A美元,
关键词:“VK_JUNJA”;瓦尔:23,
键:“VK_K”;增值税:40亿美元,
键:“VK_KANA”;瓦尔:21,
关键词:“VK_汉字”;瓦尔:25,
键:“VK_L”;Val:$4C,
键:“VK_启动_APP1”;Val:$B6,
关键词:“VK_发布应用程序2”;Val:$B7,
关键词:“VK_发布_邮件”;Val:$B4,
键:“VK_启动_媒体_选择”;Val:$B5,
键:“VK_LBUTTON”;瓦尔:1,
键:“VK_LCL_ALT”;瓦尔:18,
键:“VK_LCL_AT”;Val:$103,
键:“VK_LCL_反斜杠”;Val:$DC,
键:“VK_LCL_呼叫”;瓦尔:101美元,
关键词:“VK_LCL_CAPSLOCK”;瓦尔:20,
关键词:“VK_LCL_CLOSE_BRAKET”;瓦尔:$DD,
键:“VK_LCL_逗号”;瓦尔:$BC,
键:“VK_LCL_ENDCALL”
; 增值税:102美元,
关键字:“VK_LCL_EQUAL”;瓦尔:$BB,
关键词:“VK_LCL_LALT”;Val:$A4,
键:“VK_LCL_减号”;Val:$BD,
关键词:“VK_LCL_OPEN_BRAKET”;Val:$DB,
键:“VK_LCL_点”;瓦尔:$BE,
关键词:“VK_LCL_电源”;瓦尔:100美元,
关键词:“VK_LCL_报价”;瓦尔:$DE,
关键词:“VK_LCL_RALT”;增值税:5美元,
关键词:“VK_LCL_SEMI_逗号”;瓦尔:$BA,
关键词:“VK_LCL_斜线”;瓦尔:$BF,
关键词:“VK_LCL_TILDE”;Val:$C0,
键:“VK_LCONTROL”;Val:$A2,
键:“VK_左”;瓦尔:37,
关键词:“VK_LMENU”;Val:$A4,
键:“VK_LSHIFT”;Val:$A0,
关键词:“VK_LWIN”;增值税:50亿美元,
键:“VK_M”;Val:$4D,
关键词:“VK_MBUTTON”;瓦尔:4,
关键词:“VK_媒体_下一首歌”;Val:$B0,
键:“VK_媒体_播放_暂停”;Val:$B3,
关键词:“VK_媒体_上一曲目”;Val:$B1,
键:“VK_媒体_停止”;Val:$B2,
键:“VK_菜单”;瓦尔:18,
键:“VK_模式更改”;瓦尔:31,
键:“VK_乘法”;瓦尔:106,
键:“VK_N”;Val:$4E,
键:“下一个VK_”;瓦尔:34,
关键词:“VK_NONAME”;Val:$FC,
键:“VK_非转换”;瓦尔:29,
关键词:“VK_NUMLOCK”;增值税:90美元,
关键词:“VK_NUMPAD0”;瓦尔:96,
关键词:“VK_NUMPAD1”;瓦尔:97,
关键词:“VK_NUMPAD2”;瓦尔:98,
关键词:“VK_NUMPAD3”;瓦尔:99,
关键词:“VK_NUMPAD4”;瓦尔:100,
关键词:“VK_NUMPAD5”;瓦尔:101,
关键词:“VK_NUMPAD6”;瓦尔:102,
关键词:“VK_NUMPAD7”;瓦尔:103,
关键词:“VK_NUMPAD8”;瓦尔:104,
关键词:“VK_NUMPAD9”;瓦尔:105,
关键词:“VK_O”;Val:$4F,
关键词:“VK_OEM_1”;瓦尔:$BA,
关键词:“VK_OEM_102”;Val:$E2,
关键词:“VK_OEM_2”;瓦尔:$BF,
关键词:“VK_OEM_3”;Val:$C0,
关键词:“VK_OEM_4”;Val:$DB,
关键词:“VK_OEM_5”;Val:$DC,
关键词:“VK_OEM_6”;瓦尔:$DD,
关键词:“VK_OEM_7”;瓦尔:$DE,
关键词:“VK_OEM_8”;Val:$DF,
键:“VK_OEM_清除”;Val:$FE,
关键词:“VK_OEM_逗号”;瓦尔:$BC,
键:“VK_OEM_减号”;Val:$BD,
关键词:“VK_OEM_期”;瓦尔:$BE,
关键词:“VK_OEM_PLUS”;瓦尔:$BB,
键:“VK_P”;增值税:50美元,
关键词:“VK_PA1”;Val:$FD,
键:“暂停”;瓦尔:19,
关键:“VK_游戏”;Val:$FA,
关键词:“VK_打印”;瓦尔:42,
关键词:“VK_PRIOR”;瓦尔:33,
Key:'VK_PROCESSKEY';Val:$E7,
关键词:“VK_Q”;瓦尔:51美元,
键:“VK_R”;瓦尔:52美元,
键:“VK_RBUTTON”;瓦尔:2,
键:“VK_RCONTROL”;增值税:3美元,
键:“VK_返回”;瓦尔:13,
关键词:“VK_RIGHT”;瓦尔:39,
键:“VK_RMENU”;增值税:5美元,
键:“VK_换档”;Val:$A1,
关键词:“VK_RWIN”;增值税:5美分,
关键词:“VK_S”;瓦尔:53美元,
键:“VK_滚动”;瓦尔:91美元,
键:“VK_选择”;瓦尔:41,
键:“VK_分离器”;瓦尔:108,
键:“VK_移位”;瓦尔:16,
关键词:“VK_睡眠”;Val:$5F,
键:“VK_快照”;瓦尔:44,
键:“VK_空间”;瓦尔:32,
键:“VK_减法”;瓦尔:109,
关键词:“VK_T”;瓦尔:54美元,
键:“VK_选项卡”;瓦尔:9,
关键词:“VK_”;瓦尔:55美元,
键:“VK_未定义”;Val:$FF,
关键词:“VK_未知”;瓦尔:0,
键:“VK_UP”;瓦尔:38,
键:“VK_V”;Val:$56,
键:“VK_音量下降”;瓦尔:$AE,
按键:“VK_音量_静音”;瓦尔:$AD,
键:“VK_音量向上”;Val:$AF,
键:“VK_W”;Val:$57,
键:“VK_X”;瓦尔:58美元,
键:“VK_XBUTTON1”;瓦尔:5,
键:“VK_XBUTTON2”;瓦尔:6,
键:“VK_Y”;瓦尔:59美元,
键:“VK_Z”;Val:$5A,
键:“VK_缩放”;Val:$FB
;
开始
对于数据do中的var VK
如果是SameTextVK.Key,则为AVKString
ExitVK.Val;
结果:=0;
终止
Fwiw,当我在进行商业Delphi开发时,除了Unicode支持之外,我从来没有真正感到迫切需要任何D7之后的语言更改,特别是不需要泛型或增强的RTTI等。Otoh,字符串大小写支持将提供
语言实际表达能力和简洁性的最大单次提升。Imo,ymmv,等等…Fwiw,当我在做商业Delphi开发时,除了Unicode支持之外,我从来没有真正感觉到对D7之后的任何语言更改的迫切需要,特别是泛型或增强的RTTI,等等,字符串大小写支持将最大限度地提高语言的实际表达能力和简洁性。Imo、ymmv等。。。