怎么实现dbgrid中符合某些条件的记录及行的数值不能进行修改

如何实现dbgrid中符合某些条件的记录及行的数值不能进行修改
如何实现dbgrid中符合某些条件的记录及行的数值不能进行修改???新增的和某些记录则可以进行修改。

------解决方案--------------------
beforeedit

if 符合条件 then abort;
------解决方案--------------------
用ADOQuery的BeforeEdit事件

procedure TForm1.ADOQuery1BeforeEdit(DataSet: TDataSet);
begin
if ADOQuery1.FieldByName( 'test ').AsBoolean then
begin
showmessage( '已经OK状态,不能修改 ');
abort;
end;
end;