一个TEDIT控件,要求最多只能输入18个字符,只能为字母和下划线,我想用mask属性,不想在事件处理程序中判断,该怎么做?

解决方案 »

  1.   

    maskedit真晕,老打错,今天真是郁闷了;
      

  2.   

     edit1.MaxLength:=18;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
       if not (key in['a'..'z','_',#8]) then
        key:=#0;
    end;
      

  3.   

    edit1.MaxLength:=18;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
       if not (key in['a'..'z','_',#8]) then
        key:=#0;
    end;
    同意这个
      

  4.   

    三楼正解MaskEdit太难使,能不用就不要用
      

  5.   

    我就是不想在KeyPress事件中处理,因为这样的话如果用复制、粘贴操作的话根本处理不了。
      

  6.   

    你在KeyPress事件中禁掉了其它按钮,但是对复制那些快捷键还是可以用的,不信你试试
      

  7.   

    ValidateEdit()的方法一般要写在哪呢?就可以检查你输入的文本内容格式要求,使其返回重新输入
      

  8.   

    edit1.MaxLength:=18;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
       if not (key in['a'..'z','_',#8,#3,#22]) then
        key:=#0;
    end;~~~~~~~~~~~~~~~~~~~~~
    #3---->Ctrl+C
    #22--->Ctrl+V
      

  9.   

    楼上的,把#3和#22写到里面恰恰是允许复制和粘贴
    其实光写if not (key in['a'..'z','_',#8]) 就限制了Ctrl+C Ctrl+V了,但鼠标操作的复制粘贴还是避免不了