我用DBEdit组件(对应数据库字段类型为DateTime)在对DBEdit里的内容进行编辑的时候如果输入的不是DateTime类型的话,在焦点从DBEdit上移开时会产生一个EConverError的异常,请问怎样处理这样的异常?我想截获这个异常,然后出现一对话框提示用户。我在OnExit时间中加入以下代码,大家指点一下,谢谢!procedure TEditusers.DBEdit5Exit(Sender: TObject);
begin
   try
   except
      on EConvertError do
      ShowMessage('你输入的日期格式不对。请你按"年-月-日"格式重新输入');
   end;
end;

解决方案 »

  1.   

    你需要在DATASET的POST以前自己进行检查;
      

  2.   

    在字段的SetText过程中写代码
      

  3.   

    procedure TEditusers.DBEdit5Exit(Sender: TObject);
    begin
       try
         strtodate((sender as Tdbedit).text);
       except
          on EConvertError do
          ShowMessage('你输入的日期格式不对。请你按"年-月-日"格式重新输入');
       end;
    end;
      

  4.   

    我写错了。
    jackystar的方法有效
      

  5.   

    个人觉俐用DBEDIT还不如用EDIT...
      

  6.   

    procedure TEditusers.DBEdit5Exit(Sender: TObject);
    begin
       try
         strtodateedit1.text);
       except
                ShowMessage('你输入的日期格式不对。请你按"年-月-日"格式重新输入');
       end;
    end;
      

  7.   

    procedure TEditusers.DBEdit5Exit(Sender: TObject);
    var MyDateTime:TDateTime;
    begin
       if not TryStrToDateTime(Date,MyDateTime) then
         ShowMessage('你输入的日期格式不对。请你按"年-月-日"格式重新输入');
    end;
      

  8.   

    错了,应该是:
    procedure TEditusers.DBEdit5Exit(Sender: TObject);
    var MyDateTime:TDateTime;
    begin
       if not TryStrToDateTime(DBEdit5.Text,MyDateTime) then
         ShowMessage('你输入的日期格式不对。请你按"年-月-日"格式重新输入');
    end;
      

  9.   

    可以监测DBEdit里的数据长度,如果等于10(如果你的日期格式是:'yyyy/mm/dd'的话),则执行校验过程(自己写)
      

  10.   

    procedure TEditusers.DBEdit5Exit(Sender: TObject);
    begin
       try
         strtodateedit1.text);
       except
                ShowMessage('你输入的日期格式不对。请你按"年-月-日"格式重新输入');
    dbedit5.text:="";
    dbedit5.setfocus;
       end;
    end;
      

  11.   

    同意:outer2000(天外流星) 
    星星就是星星!