procedure TForm1.Edit1Change(Sender: TObject);
var
edt:string;
begin
edt:=rightstr(edit1.Text,1);
  if not edt in ['0'..'9'] then
begin
  showmessage('您输入的不是数字,请重新输入')
end;end;end.
 if not edt in ['0'..'9'] then
这句编译不过请问应如何改

解决方案 »

  1.   

    edt是字符串而不是字符。
    应该响应OnKeyPress
      

  2.   


    那我应该如何用?请指点谢谢~~刚刚开始学习Delphi......
      

  3.   


    限制文本框中只能输入数字我已经弄懂了,但是想弄清楚Rightstr(edit1.text,1)是怎么判断的.....
      

  4.   


    var
      C: Char;
    begin
      C := edt[1];
      if not (C in ['0'..'9']) then
      

  5.   

    在Edit的onkeypress事件中写上
    if not(key in ['0'..'9',#13, '.']) then key:=#0;
    没必要用showmessage提示,用多了客户一般都会烦的
      

  6.   

    你也可以用Examples页里的SpinEdit,它只能输入数字。
      

  7.   

    你这样用的话,edt应该设置成Char类型。还是用keypress来方便点
      

  8.   

    建议编写一个判断函数。通过For循环判断每个字符,是否数字。