你可以暂时调用Query.DisableControls,是Query与数据控制部件暂时断开关系,然后需要显示数据的时候在调用EnableControlS就可以了

解决方案 »

  1.   

    你为什么不用edit?一定要用dbedit?你可以设置dbedit的enabled,readonly,同样也能达到你的效果;
    我一直都不用dbedit,并不是不会用,而是觉的用上不是很好;
      

  2.   

    为什么不用以下STRINGGRID了
    自己写代码啊?
      

  3.   


    我一般也不用dbedit,而用edit,是因为edit好控制
    你用batchupdate也可以
      

  4.   

    编写TDataSource的OnStateChange事件,当DataSource.DataSet.State in [dsInsert, dsEdit]时,则dbEdit.enabled := False.
      

  5.   

    procedure Form1.DataSourceStateChange(sender : TObject);
    var bEnanble : Boolean;
    begin
    bEnable := (Sender as TDataSource).DataSet.State in [dsInsert, dsEdit];
    dbEdit1.Enabled := bEnable; //输入框
    btnSave.Enabled := bEnable; //保存按纽
    btnCancel.Enabled := bEnable; //放弃按纽
    btnInsert.Enabled := not bEnable; //添加按纽
    btnEdit.Enabled := not bEnable; //编辑按纽
    end;
      

  6.   

    其实,
    你也可以用Query.DisableControls;先将它们暂时的分开;
    用的时候,再query.enablecontrols就可;
      

  7.   

    那如果如楼上说的 
    先用query.disablecontrols,会不会使dbedit变成空空呢,还有那个query会不会什么都看不见
      

  8.   

    用dbedit挺好的呀,可以省去很多麻烦,并且灵活性也挺好