ado+access2000
adotable的field(access中为float) 与dbedit相连,dbedit要求能输入负数,
如果只输入负号,使用鼠标切换焦点,就会报错。
不知道怎么自动把负号转化为0?

解决方案 »

  1.   

    pressdown事件中
    procedure Tform.FormKeyPress(Sender: TObject; var Key: Char);
    begin
         if key='-' then
            key:='0';
    end;
      

  2.   

    在dbedit的onexit事件中判断修正这个值,或者使用第三方的数据敏感控件能避免这个问题
      

  3.   

    boz(波) 的方法不行,当你们次输入‘-’号都会变成‘0’
      

  4.   

    我在onexit事件中
     if  (TDBEdit(Sender).text='-') then   TDBEdit(sender).text:='0.00';
    但是,这样不行,键盘切换焦点,可以通过可keypress和keydown来判断和重新赋值,
    但用鼠标切换,就不行了 。
      

  5.   

    我想应该在数据组件的事件中写代码
    比如在dataset的onchanged事件中
      

  6.   

    在dataset的onchanged中也不行报错: '-' is not a valid floating point value for field...
      

  7.   

    onexit:
         
    if Trim(Edit1.Text) = '-' then
      Edit1.Text := '0';
      

  8.   

    procedure Tdbedit1.onexit(Sender: TObject; );
    begin     
     if Trim(DBEdit1.Text) = '-' then
        Edit1.Text := '0';
    end;
      

  9.   

    我顺便问一个我的DBEDIT怎么不能输入啊