Cita:
Empezado por PaulaGV
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