用maskedit控件输入时间,设置好格式后,如果输入时间不完全,焦点移出maskedit后会报错,比如02: 2,这样就会报错。如何屏蔽这个错误?

解决方案 »

  1.   

    用ApplicationEvents控件能屏蔽掉所有你想屏蔽的消息procedure TWatch_Frm.ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    begin
      if Msg.message = () then
      begin
        Msg.message :=‘’;
         end;
    end;
      

  2.   

    报错是在虚拟方法ValidateError中产生的:
    procedure TCustomMaskEdit.ValidateError;
    begin
      MessageBeep(0);
      raise EDBEditError.CreateResFmt(@SMaskEditErr, [EditMask]);
    end;所以解决方法:
    从TCustomMaskEdit或者TMaskEdit派生,覆盖ValidateError不过实际上并没有这个必要,因为输入错误后只是会在调试时显示提示信息,正式运行时无。————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  3.   

    同意 lxpbuaa(桂枝香在故国晚秋) , lxpbuaa(桂枝香在故国晚秋) 你不是南唐皇帝吧。
    那只是一个 RunTime 的调试错误。独立运行是不会报错的。
      

  4.   

    to lxpbuaa(桂枝香在故国晚秋):
    我单独运行.exe文件还是会报啊,就是这个:invalid input value. use escape key to abandon changes
    求解
      

  5.   

    我的MaskEdit运行时也报错啊?????