为什么没反映 这写错啦? 高手看看~~
本帖最后由 wwwhbg888 于 2012-4-27 11:21 编辑procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = 48 then
ShowMessage('ksjdkfsjk');
end;
按下键盘没反映砸回事 原因是这样的: 数据类型不一致,因为KRY得数据类型是Word,而0的ASCII码是integer类型。 原因是这样的: 数据类型不一致,因为KRY得数据类型是Word,而0的ASCII码是integer类型。
DELPHI在逻辑运算时有些可以自动数据类型转换 Word转integer 所以程式才能运行。。。。 其实你这个程式是正确的你按下上面那个0就会有提示了 。。。 为什么按上面的程式就可以运行了,而按下面的那个0就不可以运行。。这个我就不知道了 如果你想要在用户按下0后有提示 你可以在KEYPRESS事件中 判断用户按下键的ASCII码 就可以了。。。。。。下面是具体代码:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if ord(Key) = 48 then
ShowMessage('你按下0');
end;:D procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key= #48 then
ShowMessage(''ksjdkfsjk');
end;
页:
[1]