在EditExit事件中判断。
procedure Form1.Edit1Exit(Sender: TObject);
var dd: TDateTime;
begin
  try
    dd := StrToDateTime(Edit1.Text);
  except
    ShowMessage('输入数据错误,请重新输入!');
    Edit1.SetFocus;
    Exit;
  end;
end;

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    var
       MyDate:TDateTime;  
    begin
     if Key=#13 then
      try
        MyDate:= StrToDateTime(Edit1.Text);
      except
        ShowMessage('输入日期错误,请重新输入!');
        Edit1.SetFocus;
        Exit;
      end;end;
      

  2.   

    MaskEdit不能控制日期吧?
    好象输入1999-2-31它并不报错也不好用
      

  3.   

    参考:TryStrToDate() //for Delphi6
    不要在这上面花太多的时间
    用户关心的是数据处理正确性和快速性在该输数字的地方输字母
    我看这样的客户不做也罢