我的DBedit1是连在ADOQuery1的一个数据源,在post前,ADOquery1.Insert后我给DBedit1.text赋了个初值,然后我把光标点它修改,可是光标一进到里边,原来赋的值就没有了,这是怎么回事?同样的我给一个DBComBobox赋了个初值就没问题,我是百思不得其解!望高手指点!!谢谢!!

解决方案 »

  1.   

    在数据感知控件中,不要对这个控件直接赋值,如果需要初始化,则在你的数据源中进行操作,如:
      在adoquery1 的afterinsert事件中对某个字段进行初始化:
      
      dataset.FieldByName('field1').asstring := 'test';如果你这个field1对应你的dbedit1的话,你再点击进去,它的值就不会没有掉了,不然的话,dbedit1会显示它的数据源的值的,也就是一个空的值。
      

  2.   

    补充一点:对dbcombbox不会这样,因为它是一个可选择的控件,可能会认为它的值是从列表中选择出来的,所以不清空它,详细的原因我想只有在你了解了写这个控件的人是怎么设计的才知道吧、。