procedure TForm1.Edit1KeyPress(Sender:TObject;var Key:Char);
var
  b:boolen;
begin
  b:=(key<#8)or(key>#8)and(key<#45)or(key>#46)and(key<#48)or(key>#57);
  if b then
     key:=#0;
end;
请问各位高手:
    此事件的作用是什么?程序中的"key","#","#8","#45","#46","#48","#57","#0"
各是什么意思呀?麻烦你给个具体的解释好吗?我是个新手。求求你们给解释解释。

解决方案 »

  1.   

    作用是只允许Edit1输入数字,或按删除和退格键,不能按其它键。
    key是按下的键的ASCII码值,#8之类的都表示字符,#8是退格键,
    #46是删除键,#48到#57是0到9。
      

  2.   

    Key是事件传递的参数,
    以#开头的是ASCII码的序号,例如#65就是A
    因为ASCII的65就是字母A
      

  3.   

    procedure TForm1.Edit1KeyPress(Sender:TObject;var Key:Char);这个事件中有两个参数,第一个表示接受消息控件类型,第2个表示 键盘按下的字符每按下一次键盘,就触发一次这个事件,在数字前面加上#表示这是asci字符,每个数字对应相应的asci字符,你可以查查asci表。
      

  4.   

    很对,很对,Key的AscII码有张表可以自己去找找。
      

  5.   

    我这里有张AscII的表,谁要的话找我好了。
      

  6.   

    如果只是控制只录入数字,以下也可:
    procedure TForm1.Edit1KeyPress(Sender:TObject;var Key:Char);
    begin
      if not(Key in ['0'..'9',chr(Vk_back),'.','-'])then
        Key:=#0
    end;