1. Delphi has LockColumn function to determine column is readonly or not.
function TMainForm.LockColumn(ColIdx: Integer): boolean;
begin
if ColIdx in [1,2] then
begin
Result:= ClientDataSet1.FieldByName('EmpNo').AsInteger < 20;
end;
end;
2. UniDBGrid -> ClientEvents -> ExtEvents -> beforeedit to call LockColumn.
function beforeedit(editor, context, eOpts)
{
return MainForm.LockColumn(context.colIdx);
}
Please refer sample, ca