Lo que te dijo marcoszorrilla está bien, pero te lo pongo de otra forma...
Al estar conectado tu query al dbgrid mediante un datasource, al seleccionar una fila en el dbgrid, el registro "ligado" en el query también se selecciona... Entonces si haces:
Código Delphi
[-]
MiVariable := MiQuery.FieldByName('NombreCampo').Value;
MiVariable := DataSource.DataSet.FieldByName('NombreCampo').Value;
obtienes el valor deseado en la variable.
Saludos...