En cuanto a la segun pregunta, si se trata del Grid de las Quantum, la forma más sencilla de acceder a los datos es a través del DBTableView asociado al Grid.
No se si se trata de la misma versión que posees tú (no comentas cual es), pero en mi caso accedo de la siguiente manera:
Código Delphi
[-]
var
ColID, RecID:Integer;
TableItem:TcxCustomGridTableItem;
begin
...
TableItem := DBTableView.DataController.GetItemByFieldName(FieldName);
Str := DBTableView.Controller.SelectedRecords[i].Values[TableItem.Index];
ColID := DBTableView.DataController.GetItemByFieldName(FieldName).Index;
RecID := DBTableView.DataController.FocusedRecordIndex;
Str := DBTableView.DataController.Values[RecID, ColID];