Creo que para capturar la celda seleccionada en un DBGrid se hace de la siguiente manera:
if ( ! DBGrid1->DataSource->DataSet->IsEmpty() &&
Key == VK_RETURN ) // Si hay datos...
Edit1->Text = DBGrid1->DataSource->
DataSet->FieldByName("TUCAMPOLLAVE")->AsString;
Saludos y suerte!..
PD. No lo probé, es solo un código que hallé en Internet.