procedure TForm1.edtPsdKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if(Key = 13) then
 btnOK.SetFocus()
else if(Key<48) or (Key >57) then
begin ShowMessage('请输入数字');   
edtPsd.Text:='';
end;
end;
end.现在输入不是数字是会清空edit的.如果换个次序
edtPsd.Text:='';
ShowMessage('请输入数字');   
就不会清空了?

解决方案 »

  1.   

    参考这个代码:procedure TfCityInfos.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if not (Key in ['0'..'9', #8]) then
      begin
        Key := #0;
        beep;
      end;
    end;
      

  2.   


    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    beginEdit1.Text := '';
    end;为何达到清空文本框的目的?
      

  3.   

    Key  :=  #0;  这个在d8中编译错误!#代表什么意思?
      

  4.   

    #0 代表一个空间内数据为 0 的字符,#8 就是 BackSpace了。