在新增记录的时候,需先将各edit清空。若之前没有显示数据的话,则无错;若新增记录之前,各输入框已经对应有记录,按了新增之后,首先执行清空操作,此时各联系浮点型的edit就会出错,出错提示是:''is not a valid floating.
   我清空的程序是edit1.text='';而且其中有edit3的值是edit1与edit2之平均值,是自动计算的。请高手赐教!

解决方案 »

  1.   

    你插入数据的时候肯定进行了strtofloat的转换吧?''当然不能转换成float类型了。建议如果是联系浮点型的edit就设置一个默认值比如0.0就可以了。
      

  2.   

    SendMessage (hwndEdit, WM_CLEAR, 0, 0) ;
    BOOL SetWindowText(
      HWND hWnd,         // handle to window or control
      LPCTSTR lpString   // title or text
    );
      

  3.   

    其实你不需要清空,只要和数据集相连即可,
    计算字段Edit3的值,在数据集中写,在改变Edit1和Edit2所对应的字段值进修改!如果是赋初值,浮点型赋一个0比较好一些!
      

  4.   

    你是在EDIT的OnChang事件里写了代码了。
    在里面用TRY...except..K
      

  5.   

    xixuemao(俺可是㊣②㈧经儿滴人) 
    同意楼上看法!
    edit=''空值的话是不能转换的,建议edit1初始为‘0’
      

  6.   

    谢谢!诚如xixuemao说的一样,我在计算edit3的值得时候将strtofloat放到了try的外面,所以出现了此问题。至于edit赋予一个默认值,我们原来是这样做的,但是客户觉得不好。Teng_s2000说的edit.clear,edit有这个方法吗,好像只有memo才有吧。
    SendMessage (hwndEdit, WM_CLEAR, 0, 0) ;
    BOOL SetWindowText(
      HWND hWnd,         // handle to window or control
      LPCTSTR lpString   // title or text
    );
    这个我看得不是太明白,请给更详细的解释(本人入门比较迟,望见谅)回答者都有分,不过分不多哦。不过在与交流吧,再次谢谢赐教!
      

  7.   

    你的edit3是Edit2和edit1的平均值,那么你肯定会对edit1和2进行运算,你在这个步骤里做了相应的转换操作,如StrtoFloat,当然根据你的出错提示,你的错误是用了Strtofloat这个函数,当你的edit2和1里面的内容不是一个正常的浮点数字的时候必定会出错,有3个办法一个是你确保里面的内容是正确的浮点数,2,使用异常处理,这样你可以对结果精确预算,3,请使用StrtoFloatDef()这个函数,里面有2个参数,第一个是要转换的字符串,第2个是一个默认值,当转换出现错误的时候,这个函数将返回默认值,这个函数比你用异常处理要来的好,不过实际上他也是一样的道理,你看看源码就知道了
      

  8.   

    你是不是用DBEdit呀,还有你可能绑定了数据源吧,''不是一个float型?