if(not(key in['0'..'9','a'..'z','A'..'Z'])) then
showmessage('特殊字符不能用!');这样判断当输入一个字符串的时候对每一个字符都判断也都做提示.
我想要的效果是输入完一个字符串然对这个字符串进行判断看是否有特殊字符.
应该怎么写啊!

解决方案 »

  1.   

    如果对代码要求不高的话, 循环就可以满足:var
      S : string;
      I : integer;
    begin
      S := Edit1.Text;
      for I := 1 to Length(S) do
        if (not(S[I] in['0'..'9','a'..'z','A'..'Z'])) then
           showmessage('特殊字符不能用!');
    end;
      

  2.   

    如果不想用那个变量S ,就这样:var
      I : integer;
    begin
      for I := 1 to Length(Edit1.Text) do
        if (not(Edit1.Text[I] in['0'..'9','a'..'z','A'..'Z'])) then
           showmessage('特殊字符不能用!');
    end;
      

  3.   

    如果连I都不想用就这样:Begin
      While Key<>'' Do Beign
        if (not(Key[1] in['0'..'9','a'..'z','A'..'Z'])) then
           showmessage('特殊字符不能用!');
        Key := Copy(Key, 2, MaxInt);
      End;
    End;
    呵呵,不过判断完之后你的KEY也没了
      

  4.   

    谢了.这个方法.我试过了.---------------------------那么楼主什么方法没试过呢?莫非楼主不结下面这贴的原因,也是"谢了,我试过了" ?
    http://community.csdn.net/Expert/topic/5442/5442861.xml?temp=.7136804