怎样格式化字段,比如我想在EDIT1输入“年-月-日”这样的形式,如果没输入此形式,就提示错误,怎样写代码

解决方案 »

  1.   

    不行呀,最好是EDIT呀,不是MASKEDIT
      

  2.   

    用DataTimePick控件也可以实现啊。
      

  3.   

    onexit事件中使用 COPY OR POS函数
      

  4.   

    在DbEdit的OnExit事件中进行判断
    procedure TForm1.DBEdit1Exit(Sender: TObject);
    var dt : TDateTime;
    begin
      try
        dt := strtoint(DbEdit1.Text);
      except
        Application.MessageBox('您输入的字符不合法,请重新输入。');
        DbEdit1.SetFocus;
      end;
    end;
      

  5.   

    expressquantumgrid
    有一个专业的datetime输入控件,你可以看看!
    www.51delphi.com
      

  6.   

    procedure TForm1.DBEdit1Exit(Sender: TObject);
    var dt : TDateTime;
    begin
      try
        dt := strtoint(DbEdit1.Text);
      except
        Application.MessageBox('您输入的字符不合法,请重新输入。');
        DbEdit1.SetFocus;
      end;
    end;
      

  7.   

    用异常吧。try
    //这里写赋值的控件
    except
    //这里写输入不合法的提示
    end找楼上的写就可以。
      

  8.   

    阁下的情况有两种解决方法:
    1使用日期选择控件,这样用户只需用鼠标点几下,选择了需要的时间就可以自动输入了。Express中带了这末一个控件dxdbdateedit,当然还有好多,可以到其他站上搜罗一下。
    2使用检测,可以用上面所讲的异常处理报告用户输入不合法,也可以利用输入数据库时的返回异常进行报告。提倡使用1。
      

  9.   

    var
      s: String;
    begin
      s:= Edit1.Text;
      if (pos('年',s)=0) or (pos('月',s)=0) or (pos('日',s)=0) then
        ShowMessage('不合法');
    end;