我用了一些数据感知控件:如 dbedit,DBLookupComboBox 等,
现在我可以直接在其上编辑数据,
但是现在我要在点一个按钮后才可以 进入新增和编辑模式,
也就是说在点按钮前 dbedit、DBLookupComboBox 等数据感知控件都是锁定的,
怎么做?我发现如果把ADOQuery的LockType属性改为只读和不只读要先把记录集进行打开,
有什么办法在打开的记录集上进行锁顶操作么?

解决方案 »

  1.   

    设置控件的readonly属性为true不行吗?
      

  2.   

    把这些控件的Enabled设成False,点了可修改的按钮后,可把这些控件的Enabled设成True
      

  3.   

    把ADOQUERY的FIELDS集中把相应的字段的READONLY设为TRUE不知行不行,我没有这样用过,我从不用DBEDIT因为他在我们更改数据时很难控制数据的完整性,我建议还是用EDIT虽然麻烦了点,但在程序控制中会方便很多,总的比起来还是比较划算的
      

  4.   

    或者你把所有控件都放在一个PANEL中不让修改时把PANEL。ENABLE=FALSE也可以,这样不知能不能满足你的要求
      

  5.   

    上面的方法都可以的。或者你循环判断self.component。if component[i].class=Tedit then
    component[i].readonly:=true;
      

  6.   

    用edit太麻烦了,还是dbedit好,我上一个项目也是这样,最好方法就是把datasoure的autoedit设置为false了
      

  7.   

    用ADOQuery的一个方法,
      ADOQuery.ControlsDisabled
    要恢复用ADOQuery.EnableControls
      

  8.   

    现在看来只有把控件的readonly属性设置为true了,感谢大家的参与。