我用的是DbEdit组件,对应的字段的类型时DateTime,我想在用户输入完后检查所输入的格式是否正确(会自动检查,但出现错误是会产生EConvertError),如果不是则进行异常处理-提示重新输入。我的代码是
procedure TEditusers.DBEdit5Exit(Sender: TObject);
begin
 try
   except
      on EConvertError do
   ShowMessage('你输入的日期格式不对。请你按"年-月-日"(如:2000-01-01)格式重新输入');
   end;
end;可是还是达不到预期的功能。
请问当焦点移开时触发DbEdit的什么事件?望各位指点指点。谢谢

解决方案 »

  1.   

    OnExit事件!
    我个人认为最好不要用什么DBEdit组件
    用Edit组件,自己控制,这样多好!
      

  2.   

    我是用OnExit的啊,请各位认真看看我的代码吧
      

  3.   

    加入一DateTimePicker控件,写如以下代码:
    procedure TForm1.DateTimePicker1Change(Sender: TObject);
    begin
       TABLE1.Edit;
       TABLE1['DATAFIELD']:=DATETIMEPICKER1.Date;
       TABLE1.Post;
    end;
    这样做看能不能达到你的要求。
      

  4.   

    你的代码出现的效果是什么?是不是没有进入你写得异常处理中去?可能是因为这是由于控件造成的异常,已经被delphi的vcl捕捉了。最好使用edit,处理这样就好控制了。
      

  5.   

    用Edit和DBEdit控件都可以,但是我觉得用Edit比较好.写OnExit时间.
    procedure TForm1.DBEdit1Exit(Sender: TObject);
    begin
      if 不符合你要求的格式 then 
      begin
        DBEdit1.SetFocus;
     //或者ShowMessage('你输入的日期格式不对。请你按"年-月-日"(如:2000-01-01)格式重新输入');
      end;
    end;