Hola:A ver si te sirve así:
Poniendo el siguiente código en los eventos OnSelectCell y OnDrawCell del TStringGrid
//---------------------------------------------------------------------------
// OnSelectCell
// * Evitamos que la columna especificada se seleccione
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
CanSelect = (ACol!=2);
}
//---------------------------------------------------------------------------
// OnDrawCell
// * Pintamos de un color la columna especificada
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if (!State.Contains(gdFixed) && ACol==2)
{
TStringGrid *Grid = dynamic_cast<TStringGrid*>(Sender);
Grid->Canvas->Brush->Color = static_cast<TColor>(RGB(240,240,240));
Grid->Canvas->TextRect(Rect, Rect.Left, Rect.Top, Grid->Cells[ACol][ARow]);
}
}
//---------------------------------------------------------------------------
Saludos.
_Leo
PD: la variable 'ACol' en algunas versiones de builder aparece como 'Col'