Yo accedería directamente al DataSet en lugar de hacerlo al DBGrid.
Si el DBGrid está "enganchado" a una tabla o consulta, puedes acceder a los campos de la fila seleccionada en el DBGrid como:
Código Delphi
[-]
Edit1.Text := Tabla1.FieldByName('Codigo').AsString;