if DataSet.Stats in [dsInsert] then //当前在插入状态
begin
DataSet.FieldByName('字段名称').ReadOnly := false;//所有要控制的字段全设置一次
end
else
begin
DataSet.FieldByName('字段名称').ReadOnly := True;//所有要控制的字段全设置一次
end
可以加一个标示字段:假设字段名为bs,在添加记录时给它一个初始值(0)(也可以在建表时给一个默认值0),在记录提交之后给它重新赋值(1),在dbgrid的oncellclick事件进行
控制:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
if adoTable1xh.AsInteger >0 then
begin
dbgrid1.ReadOnly :=true;
end
else dbgrid1.readonly:=false ;
end;
给分吧!谢谢!