如何判断按下‘/’键?能给出正确答案者100分相送!(100分)

  • 主题发起人 主题发起人 linjt
  • 开始时间 开始时间
L

linjt

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序是这样的,但按下/按没有效果(判断A-Z,0-1都正常,但判断-=/,./等符号就不正常了)

procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Case Key of
VK_Divide:
Begin
ShowMessage('/');
End;
...
End;
end;

 
判断'/'键!!!
if (key=#47 ) then showmessage('OK!');
 
你的按键定义是错的
应该为
procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
caption:=inttostr(key);//这句可以在窗口标题栏显示出任何按下的键的键码
Case Key of
191:// 主键盘的'/'的键码是191
Begin
ShowMessage('/');
End; ...
111:// 小键盘的'/'的键码是111
Begin
ShowMessage('/');
End; ...

End;
end;
测试通过
还有要注意的是,在keydown事件中,小键盘的'/'键和主键盘的'/'编码是不一样的
分拿来!
 
厉害,mygod!,你从哪里可以查大小键盘的键码?
其它符号例如'*',两个回车键的呢?
 
=
大键盘: 187

,
大键盘: 188
-
小键盘: 109
大键盘: 189
.
小键盘: 110
大键盘: 190
/
小键盘: VK_DIVIDE = 111;
大键盘: 191
/
大键盘: 220
 
procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ShowMessage(inttostr(key));
end;
 
*
56 106

13

左 shift 为 16

procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key<>16 then ShowMessage(inttostr(key));
end;
 
感谢MyGod相救!
 
多人接受答案了。
 
后退
顶部