请教如何判断EDIT输入框中的字符为有效的字符,我做的是在EDIT中输入目录名并创建要求不能有/\:*?"<>|或者是重复建立等,象字母数字汉字均可.谢谢!

解决方案 »

  1.   

    得到这些字付的ascii码,进行判断就行了…
      

  2.   

    可以在keypress事件中检测是否用户输入了以上字符,如果输入则将ascii值设为0即可
      

  3.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
       case Key of
         '0'..'9':   ;      //对数字键响应
                  #8:   ;   //对退格键响应'.'
              'a'..'z';
    '
    else
            begin
            key:=#8;
            playsound('',0,snd_async);//声音提示
            end;
       end;
    end;
      

  4.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
       case Key of
         '0'..'9':   ;      //对数字键响应
                  #8:   ;   //对退格键响应'.'
              'a'..'z';
    'A'..'Z';
    else
            begin
            key:=#0;
            end;
       end;
    end;
      

  5.   

    其实我感觉不用那么繁琐,要对按键控制,你可以使用异常处理即可:try   ForceDirectories(Dir);//多级文件夹创建
       MkDir(str);//单一文件夹
       //当然要判断目的文件夹是否存在
    except  showmessage('文件名有误');
    end;
      

  6.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      //你可以在这用CHAR和你要限制的字符的ASCII  作比较就可以了,如果是你不想要的,那么你可以用 key:=#0;来把它清掉的。这样不就可以了吗?
    {至于不要存在的话你可以在建立时用一个 chdir 来做,(详细的用法你可以从DEPHI 中找一下那有说明的。)如果存在的话那你就可以提示了。否则就可以用MKDIR ()来做了。
    OK!}
       
    end;
      

  7.   

    使用Dev Express中cxMaskEdit控件,,使用正则表达式...
    是我见过最好用的...
      

  8.   

    比方说:
    [+-]\d+.\d+ | \d+.\d+
    就是只能输入数字的正则表达式.