在文本框中只能输入数字代码不明白,
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); 
if   not   (key in['0'..'9',#8]) then  key:=#0;上面的代码中#8,#0都什么意思啊,是转义字符么??
请前辈们讲讲它们这一类。还有,去掉这个#8好像没有什么区别啊????

解决方案 »

  1.   

    你看看ascii码表就知道
    与#10是换行,#13是回车一样的,#8我不知道应该是asci表的
      

  2.   

    #8是代表了‘Backspace <--’键。
    为什么要呢?
      你想想,要是输入错了,我想删除前面输入的就要用这个键了。
      

  3.   

    #10 字符常量  = Char(10)
      

  4.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); 
    begin
    if   not   (key in['0'..'9',#8]) then  key:=#0;end;
    这个事件的参数中,KEY是个引用参数,它指的就是当前按键的键值。你操作这个参数,就是操作了当前的按键了。
    从代码来看,其意思是:如果你按的键不是在数字键[0,1,2,3,4,5,6,7,8,9],与退格键这些键范围内时,当前的按键的键值就把它变成#0这个值。
    #0是什么?
      #0是NULL,也就是说,是个空值,在这儿就表示你什么键也没有按,也就是说,把你按的不在范围内的键当成什么也没有按。
    -_-!!  够明白了吧