J JohnsonGuo Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-21 #2 OnMouseDown中的键值????? 你是指OnKeyDown吧。
C clyin Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-21 #4 OnKeyDown里的键值是virtual key code, 是对按键的编码 键盘上的每一个按键都有对应的 virtual key code, 而ASCII码是对字符的编码,两者完全是两个概念。 比如,拿'7'健来说,virtual key code = 55, ASCII码的'7'也是55,但这只是为了方便 而定义的,并不能把两者等同起来,因为'y'键还对应着另一个ASCII字符'&'= 38. 不知这么说明来了没有。
OnKeyDown里的键值是virtual key code, 是对按键的编码 键盘上的每一个按键都有对应的 virtual key code, 而ASCII码是对字符的编码,两者完全是两个概念。 比如,拿'7'健来说,virtual key code = 55, ASCII码的'7'也是55,但这只是为了方便 而定义的,并不能把两者等同起来,因为'y'键还对应着另一个ASCII字符'&'= 38. 不知这么说明来了没有。
H htw Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-21 #5 1.FormKeyPress(Sender: TObject var Key: Char)中Key是Ascii码 2.FormKeyDown(Sender: TObject var Key: Word Shift: TShiftState)中 Key 是Microsoft 在其SDK中规定的虚拟键。 请打开Delphi帮助, 查找 Virtual key codes 即可知道答案。 也可找一本C语言开发Windows程序的的书来看一下。
1.FormKeyPress(Sender: TObject var Key: Char)中Key是Ascii码 2.FormKeyDown(Sender: TObject var Key: Word Shift: TShiftState)中 Key 是Microsoft 在其SDK中规定的虚拟键。 请打开Delphi帮助, 查找 Virtual key codes 即可知道答案。 也可找一本C语言开发Windows程序的的书来看一下。
J JohnsonGuo Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-22 #6 OnKeyDown获得的是虚拟键码(virtual key code)对于键盘上的每个键有唯一键码。 ~~ ASCII的是美国标准信息交换代码,是对字符的唯一编码。 ~~~~
J JohnsonGuo Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-22 #7 一般来说,数字ASCII码拥有和虚拟键码相同的值。 大写字母ASCII码拥有和虚拟键码相同的值。 但小写字母ASCII码与虚拟键码就完全不同。 例如,当CAPS LOCK没有锁定,则用OnKeyPress返回的值为97('a'),而OnKeyDown返回的值为65('A') 当CAPS LOCK锁定,则两者均返回65。
一般来说,数字ASCII码拥有和虚拟键码相同的值。 大写字母ASCII码拥有和虚拟键码相同的值。 但小写字母ASCII码与虚拟键码就完全不同。 例如,当CAPS LOCK没有锁定,则用OnKeyPress返回的值为97('a'),而OnKeyDown返回的值为65('A') 当CAPS LOCK锁定,则两者均返回65。
R Reboot Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-22 #8 吴明星: 要用ASCII? 不如响应WM_CHAR算了。 procedure TForm1.mywmchar(var msg: TWMCHAR); begin if msg.CharCode = Ord('a') then Beep; end;
吴明星: 要用ASCII? 不如响应WM_CHAR算了。 procedure TForm1.mywmchar(var msg: TWMCHAR); begin if msg.CharCode = Ord('a') then Beep; end;