raize的rzDatetimeEdit控件 ,当我输入一个非法日期 “2008-32-16”,当焦点离开时,日期自动变为“2008-10-16”,
我想在onExit事件中,自己添加日期合法性验证都不能实现,因为在onExit事件触发前,
日期已经变成了"2008-10-16",请达人救我,如何不让日期自己变啊 

解决方案 »

  1.   

    这个也不触发oninvaliddate,所以我比较郁闷
      

  2.   

    打开RzEdit.pas
    找到下面的代码:procedure TRzDateTimeEdit.DoExit;
    begin
      inherited;
      if not FValidating and not ( csDestroying in ComponentState ) then
      begin
        FValidating := True;
        try
          try
            ReformatDateTime;
          except
            // Must display error message first, then set focus back to control
            Application.MessageBox( PChar( sRzDateRange ),
                                    PChar( Application.Title ),
                                    MB_OK + MB_ICONSTOP );
            SetFocus;
          end;
        finally
          FValidating := False;
        end;
      end;
    end;将那句重新格式化日期的代码 ReformatDateTime; 注释掉, 重新编译
      

  3.   

    本帖最后由 liangqingzhi 于 2008-10-12 21:16:33 编辑
      

  4.   

    把他的属性检查一边看看。
    原来是false的,设置成true,
    原来是true的,设置成false,
      

  5.   

    好久不来,这个问题我自己已解决,
    跟老之的类似,本来以为在这里问不到答案了,还好我自己解决了。
    看来这里还是有高手在德。
    我将ReformatDateTime函数中的raize自己的格式化函数,改为了trystrtodate。