如何判断TEDIT组件的文本框内容是‘字符’还是‘数字’啊!请各位高手帮帮忙啊!

解决方案 »

  1.   

    try
      StrToInt(Edit1.Text);
      ShowMessage('数字');
    except
      ShowMessage('字符');
    end;
      

  2.   

    KeyPress事件
     if Key in ['0'..'9'] then //数字
    else
      

  3.   

    KeyPress事件
    if key in ['0'..'9'] then
      return;
      

  4.   

    写错:
    if not key in ['0'..'9'] then
      return;
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      x:real;
      i:integer;
    begin
       val(edit1.text,x,i);
       if i=0 then
       begin
         showmessage('数字');
       end
       else
       begin
         showmessage('字符');
       end;
    end;
      

  6.   

    try
      StrToInt(Edit1.Text);
      ShowMessage('数字');
    except
      ShowMessage('字符');
    end;
      

  7.   

    小弟在程序中用象 ‘sysu(死树)’的异常处理后,老是蹦如下对话框,之后继续运行才出现自己设置的异常捕捉处理!!!很是纳闷,能不能不让这个对话框出现,直接出现自己设置的异常捕捉处理?????
    ---------------------------
    Debugger Exception Notification
    ---------------------------
    Project Project1.exe raised exception class EConvertError with message ''edit1' is not a valid integer value'. Process stopped. Use Step or Run to continue.
    ---------------------------
    OK   Help   
    ---------------------------
      

  8.   

    这个异常是调试时被Delphi截获了,若是单独运行是不会出现的,
    当然在调试时也可以把它屏蔽掉,
    Tools->Debugger Options->Language Exceptions->Stop on Delphi Exceptions不打勾。
      

  9.   

    可以了,多谢 sysu(死树) 大大了!
    另外象 ilang(中雨)和 pengdali(大力) 大大的方法,我如果想用KeyDown事件的话if 条件应该怎么写呢????
      

  10.   

    if not key in ['0'..'9'] then
      return;和press的一样
      

  11.   

    KAO 还有这样判断的 
    faint 还有你不会连IF语句都不会写吧
      

  12.   

    不可以啊!用Keydown事件的话,参数key的数据类型是word,而keypress事件参数key的数据类型是char啊,if not key in ['0'..'9'] then在keydown事件中不行的,应该在keydown怎么写if 条件呢???
      

  13.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if not (Key in [Ord('0').. Ord('9')]) then
        ShowMessage('字符')
      else
        ShowMessage('数字');
    end;