if not(key in ['0'..'9',#8]) then key:=chr(0);

解决方案 »

  1.   

    如果DBGrid与DataSet连接,DataSet字段有两个属性 displayforamt和editformat前者控制显示属性,后者控制编辑状态的属性。
    例如:
    字段金额:je 类型为:numeric(15,2)
    displayformat='#,0.00',表示显示格式带千分符,至少小数点后两位。
    editformat='#0.00' 编辑状态自动去掉千分符.
    因此你可以随便设置你想要的输入格式
      

  2.   

    forgot是对的。
    另外,如果FBGrid的Cell关连的字段是整形,自动只能输入数字的。
      

  3.   

    forgot的方法好些,如果你想重写的话,要花不小的代价的,delphi将
    dbgrid中的属性给屏蔽了不少的!你可能要追踪到最底层才能控制!你可以
    使用消息屏蔽来试试(没试验)