When you move in the grid, the underlaying table (connected with DataSource) follows your movements, thus you can reach the actual record easily via persistent fields (Table1Field1.Value) or Table1.Fiels[x].Value or Table1.FieldByName('xxx').Value
All fields:
with Table1 do
for i:=0 to Fields.Count-1 do
// do anything with Fields.Value
Otto