Otra forma es usar un evento que se dispare cada que el dataSet cambie de estado y ese evento puede ser el StateChange del DataSource (ejemplo: dsEjemplo) que conecta el DataSet(ejemplo: tblEjemplo) y colocar alli algo como:
Código Delphi
[-]procedure TForm1.dsEjemploStateChange(Sender: TObject);
begin
tbgrabar.Enabled := (tblEjemplo.STATE IN DSEDITMODES);
end;