Ver Mensaje Individual
  #3  
Antiguo 24-04-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por PaulaGV Ver Mensaje
hola!tengo un StringGrid y quiero sumar los elementos de cada fila y colocar es resultado en el ultimo casillero del stringGrid de cada fila respectivamente, ya intente varias veces y siempre me salta el mismo error, ademas de borrar los blancos que puedan quedar luego de ingresar cada elemento del StringGrid, yo hice esto, pero me salta el error '' is not a valid integer value:
Por favor, haz caso de lo que dice Casimiro.

Ahora, en cuanto a tu duda, de entrada hay varias cosas a notar en el código que pones.

1. Según lo que describes, necesitarías un doble ciclo; uno externo para recorrer las filas y otro interno para sumar los valores de las columnas. Tú sólo tienes el interno.

2. En este ciclo interno tienes dos instrucciones y debes encerrarlas en un bloque begin-end.

3. Trim es una función, lo que significa que debes asignar el valor que devuelve, por ejemplo:

Código Delphi [-]
Cells[i,j] := Trim(Cells[i,j]);

En la forma que lo haces, realmente no eliminas los espacios de las celdas.

4. No es seguro usar StrToInt a menos que estés 100% segura de que todas las entradas del StringGrid son números bien formados. Por ejemplo, celdas vacías o con letras causarán el error que ves. Creo que es más adecuado usar StrToIntDef:

Código Delphi [-]
suma := suma + StrToIntDef(Cells[i,j], 0);

De esta manera, si un celda tiene algo que no sea un número, lo que sumas será cero y no obtendrás el error.

Otra opción es verificar en cada caso antes de sumar el valor de la celda y mandar un aviso de error al usuario en caso de error.

// Saludos
Responder Con Cita