type
TForm1 = class(TForm)
...
DBGrid1: TDBGrid;
bnGuardar: TButton;
procedure FormCreate(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure bnGuardarClick(Sender: TObject);
private
FDisplacement: Boolean;
procedure DataSetBeforeScroll(DataSet: TDataSet);
public
end;
...
implementation
procedure TForm1.DataSetBeforeScroll(DataSet: TDataSet);
begin
if not FDisplacement then Abort; end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FDisplacement := True; DBGrid1.DataSource.DataSet.BeforeScroll := DataSetBeforeScroll;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
FDisplacement := False; end;
procedure TForm1.bnGuardarClick(Sender: TObject);
begin
with DBGrid1.DataSource.DataSet do
if State = dsEdit then
DBGrid1.DataSource.DataSet.Post;
FDisplacement := True; end;