¿Y no hay ninguna posibilidad de que cuando cambias el DataSource al DBGrid, hagas lo mismo con el TDBEdit?
Ten en cuenta que el DBGrid que viene con Delphi no trae un evento OnRowChanged, de modo que para saber cuándo se ha cambiado de registro, habría que acceder al DataSource ligado al DBGrid, con lo cual, si conocemos ese dato, lo normal es enlazarlo al TDBEdit en cuanto podamos y olvidarnos de interceptar más eventos.
Sí que podrías usar el evento OnCellClick, pero no se actualizaría el TEdit cuando el usuario se moviera desde el teclado, por ejemplo. En cualquier caso, el código sería:
Código:
procedure OnEvento;
begin
if (DBGrid.DataSource <> nil) AND
(DBGrid.DataSource.DataSet <> nil) then
Edit1.Text := DBGrid.DataSource.DataSet.FieldByName('Codigo').AsString;
end;