为什么在editkeydown中使用
if key=106 then edit1.Text:='';
不能清除‘*’
其他非数字,字母好像也不行
KEYPRESS也不行,
请问如何清空edit

解决方案 »

  1.   

    edit1.Text:='' 断点查该句是否被执行
      

  2.   

    如果没被执行,好像from内有个keyp...属性赋值 true
      

  3.   

    if Key = 13 then
        Edt1.Text := '';
      

  4.   

    106 的是指 j 的编码,便是键盘输入时,是算 J 的编码,即74,
    所以改成 
    if Key = 74 then
        Edt1.Text := '';
      

  5.   

    执行了
    我随便输入‘jhkhk*’,星号前面的都清了,只剩下‘*’一个字符
    现在发现是判断哪个键,哪个键就不被清
      

  6.   

    楼主
    请学会解决问题的办法edit1.Text:=''你觉得这句话不能情况edit么?
    那么你用一个按钮,里面写这句话看能不能清
    如果你可用断点,看这句话有没有执行当然最好方法
    如果执行了还没清,这问题就比较奇怪,你看看edit1其他
    事件里面你有没有写其他代码
      

  7.   

    KEYPRESS 事件中key赋值0执行清过程后加入一下代码
    key:=0;
      

  8.   

    keyup可以
    看来最后一个字符在keydown中未存入edit
      

  9.   

    因为你按下的键也将在你清edit1之后,回显在edit1中,所以要赋值0
      

  10.   

    keyup可以是因为,在放开按键后,键值回显到edit后执行的事件,所以可以全部清除
      

  11.   

    在onKeyPress事件里写:
      if Key='*' then
      begin
        Key:=#0;
        self.Edit1.Text:='';
      end;这样就行了