在数据集代理的OnStateChange事件中写了如下代码:
dsbMains.DataSet.FieldByName('SYSTEM_COD').ReadOnly := not (dsbMains.DataSet.State in [TDataSetState.dsInsert]);
控制System_Cod字段只能在新增数据时可编辑。数据表现采用DataGrid。现在的问题是,当新增记录时,网格中并未产生空行。令做一个表现,使用DataEdit,发现新增好用。后来发现,如果将网格的edgoLoadAllRecord属性去掉后,新增时就会在网格中产生空行。请问这是否是平台的缺陷?我发现使用这个属性会引起很多问题,例如会触发数据集的BeforeScroll事件,可是这个属性却也非常有用,所以强烈建议对这些缺陷进行调整。