1.在Table的NewRecord事件里对相应的字段赋初值就不会有这个问问题了,如:
    tblTableBool.AsBoolean := True ;
2.在进入编辑状态时(Insert,Edit),将DBGrid.Enabled := False ;一切都就OK了,呵呵。
有问题跟我联系呵呵

解决方案 »

  1.   

    1.Dbcheckbox的状态跟ValueChecked和ValueUnChecked的值有关,如果你数据库中字段的值在这两个值之外,那DbCheckbox的状态就是灰色的.你知道怎样做了吧?
    2.DataSet滚动时会自动调用Post方法,很正常.
      

  2.   

    You can get answer here!
    they had told you and save you!!
    we all are your brothers!!!
    gave us your point!!!!
      

  3.   

    2.你可以在Dataset中的onPost...事件中编程,由你的确定按钮改写一个变量,然后读取,如果不是由你确定引起的POST,abort!
      

  4.   

    1.dbcheckbox.valuechecked=选中状态的值,如true、等;一定要和你数据库中的值一样。
      dbcheckbox.unvaluechecked=未选中状态的值。
    2.在本地数据库中使用DBEdit,DBNavigator时不用保存即可提交,建议你使用query为数据源,将CachedUpdate属性设为True,在按钮的click事件写;query.ApplyUpdates;这样按下该按钮时才真正写入数据库。
      

  5.   

    根据MIS系统的经验,不要用DBEDIT,用Edit吧
      

  6.   

    兄弟们,对不起了,你们的答案对我没有用,首先第一个问题是出现在新增记录时,并没有从数据库中读数据,所以什么默认值,以及UNCHECKED等等都没有读入,根本不可能起到作用,第二,关于DBGRID,它并没有从新定位,但为什么执行了刷新操作,至今没人告诉我,你们说,我该给分吗?不过,我想肯定是我没说清楚导致的问题,所以不管怎么样都要谢谢大家!
    另外还有一个问题,我有一种加密算法,需要ASCII与字符串的相互转换,ASCII转字符我知道是CHR(),但字符转ASCII呢?注意当字符转ASCII时,需要从一字符串中取出一字符,注意是丛字符串中取一个字符,我实验时采用的方法是
           var
             str:string;
             i:integer;
           begin
             str:=copy('dsafdgfg',1,1);
             i:=ord(Str);
           end;
    但可惜无法编译通过,很明显类型不匹配,ord中的字符只允许1个字节,而通过copy得到的是4个字节,究竟怎么办?
      希望高手们能给我一个完整的答复!再次谢谢大家!
      

  7.   

    1、当你在DBGRID中定位某条记录,拖动滚动条时如果该条记录仍在该屏内,焦点会随着移动。如果该笔记录到这屏的外面,焦点就会一直停在该屏的第一笔记录上,因此记录的焦点不断改变,记录也就不断提交。OK?
    2、ord函数的参数是字节不是字串,用下标得到字节,OK?