请问怎样让edit中只能输入形如2001-01-30这样的日期格式???

解决方案 »

  1.   

    采用MaskEdit控件,EditMask输入!0000/99/99;1;_
      

  2.   

    使用MaskEdit或下載其它控件吧。使用datetimepicker不是可以輸入日期的啊
      

  3.   

    可以在ONEXIT事件中进行转换,或在ONKEYPRESS中写入,但在KEYPRESS中的方法很复杂不是一下可以搞定的。
    procedure TForm1.Edit1Exit(Sender: TObject);
    var ds :TDateTime ;
    begin
      try
        ds:=StrToDate(Edit1.Text);
        Edit1.Text :=FormatDateTime('yyyy-mm-dd',ds);
      except
        Edit1.Text :=FormatDateTime('yyyy-mm-dd',date);
        Application.MessageBox('输入非法','提示',0) ;  end ;
    end;
    其实还可以根据用户所书写的格式进行判断一下如用户所输入的日期完全是数字,八位或六位用户所输入的格式是2003.6.10等
      

  4.   

    Edit1.Text:=FormatDateTime('yyyy-MM-dd',date);
      

  5.   

    对maskedit
    楼上所有的代码控制只能保证输入的是日期格式
    而不保证输入方式
    不能满足楼主要求
      

  6.   

    Edit1.Text:=FormatDateTime('yyyy-MM-dd',date);你還是用MaskEdit吧!~
      

  7.   

    manwill71的办法不好使,如果我输入英文字母,就会出错
      

  8.   

    用FormatDateTime函数。
    如:FormatDateTime('yyyy-mm-dd',date);
      

  9.   

    liuxindog(lx) 
    你可以在ONKEYPRESS里将一些不要的字符去掉呀
      

  10.   

    为什么要用edit 呀 用MaskEdit多简便呀?
      

  11.   

    已经搞定了,谢谢manwill71和大家