Tambien podrias hacer la condicion sin necesidad de declarar un AnsiString adicional
if( StringGrid1->Cells[j].IsEmpty() )
pero creo que el for debe empezar en 0 y terminar un numero antes del total
for( int i = 0; i < StringGrid1->ColCount; i++ )
for( int i = 0; i < StringGrid1->RowCount; i++ )
if( StringGrid1->Cells[j].IsEmpty() )
{
StringGrid1->Cells[j] = "Algo";
break;
}
y el break no debe ir ahi, pues el codigo solo serviria para escribir en la primera celda si esta vacia, pero solo son detalles