A: Check the DataSource's State property in the OnDataChanged
event. The State
property will be set to dsBrowse if the record position
has changed. The
following example will display a message box every
time the record position
has changed in MyDataSource:
procedure TMyForm.MyDataSourceDataChange(Sender: TObject; Field: TField);
begin
if (Sender as TDataSource).State = dsBrowse then
ShowMessage('Record Position Changed');
end;