用窗体获得键盘录入的问题(50分)

  • 主题发起人 主题发起人 c-s-c
  • 开始时间 开始时间
C

c-s-c

Unregistered / Unconfirmed
GUEST, unregistred user!
我想建一个新窗口FormKeyDown事件获得的键盘输入的字符,并且每输入一个字符就弹出键码或字符.
function IntToByteStr(Value: integer): string;
begin
SetLength(Result, 4);
Move(Value, Result[1], sizeof(integer));
end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
MessageBox(0, PChar(IntToByteStr(Key)), '确认', Mb_YesNo);
end;
但这样显示出来的都是大写,我开了大小写转换后还是大写,因为这样得到的键码无论输入的是大写还是小写都是同一个键码.例如输入字符a,无论大小写键码都是65.请问有什么好的解决方法?
 
在 OnKeyPress 事件里面处理。
 
窗体的keyPreview属性设成True.
再试试上面兄弟说的那个事件.
 
谢谢,大小写问题解决了,现在又有个问题,如果是输入回车或退格等一些特殊键显示的就是乱码,有什么办法可以知道是哪个特殊键?
 
ctrl shift alt 等一些特殊字符,在onKeyPress中不行,试下OnKeyDown中,一般特殊键都是要配合别的键用的,单独没什么意义
 
多人接受答案了。
 
后退
顶部