FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
StringGrid
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:
|
#2
|
||||
|
||||
Por favor, tal y como te he comentado antes, debes seguir las normas de clubdelphi, entre ellas está el poner títulos descriptivos a las preguntas. Gracias por tu colaboración.
|
#3
|
||||
|
||||
Cita:
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:
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:
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 |
#4
|
||||
|
||||
disculpen!!!soy nueva acá y no lo había tenido en cuenta!! pero ya lo hice de todas formas.
Con respecto a la respuesta, muchas gracias! |
#5
|
||||
|
||||
Adicionalmente a lo que dice Román, debes hacer unos ajustes a tu código...
1) Si quieres sumar todas las filas de todas las columnas, debes hacer un doble ciclo anidado... For i:= 1 to ColCount-1 do For j:=1 to RowCount -1 do {Aqui sumas tus FILAS....Cells[i,j]} 2) Asignar el resultado de la casilla modificada como dice Román Cells[i,j] := Trim(Cells[i,j]); 3) Recordar que si quieres que el for trabaje para mas de una linea debes encerrar la sentencia en un bloque Begin..end, ya que en tu ejemplo, el for termina y al final (solo al final del recorrido) ejecuta la sentencia: suma:=suma+StrToInt(Cells[1,j]); lo cual quiere decir que solo sumaste una casilla... Espermos la versión dos de tu tarea...! |
#6
|
||||
|
||||
sumar elementos de un StringGrid
muchísimas gracias!!!muy claras las respuestas, apenas tenga la segunda versión la estaré publicando!
|
#7
|
||||
|
||||
Hola PaulaGV.
Agregando algo a lo que correctamente te han sugerido, noté que mencionas que vas a usar la última columna de cada fila para poner el resultado de la sumatoria de sus columnas, es decir que deberías impedir que se pueda escribir en ColCount - 1:
Otra opción que sumaría los valores enteros, sin provocar una excepcion ante posibles valores alfanuméricos, es usando la función TryStrToInt:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 25-04-2012 a las 06:29:24. |
#8
|
||||
|
||||
Sumar el contenido de una fila o columna en un String Grid
muchas gracias!!igual lo voy a probar... ya arme un código con las primeras respuestas y me quedo así:
es una simple prueba para ver si funcionaba la parte de contar cada elemento en el StringGrid, por eso se le asigne el resultado yo misma a la ultima celda, luego tengo que modificar el código para que haga lo mismo con cada fila del StringGrid, ahora mi duda es otra, yo entiendo que la funcion TRIM quita los blancos en una cadena, entonces por que si no uso StrToIntDef en vez de StrToInt en el siguiente fragmento de codigo aparece el error '' is no a integer value?. Ademas que yo le puse una mascara para que solo se puedan ingresar números.Desde ya gracias!!
|
#9
|
||||
|
||||
como sumar los elementos de una fila de un StringGrid
hola buenas noches!!!les cuento, tengo un StringGrid, la fila 0 y la columna 0 contienen títulos, así que no deben ser modificados de ninguna manera, eso ya lo tengo controlado, quiero sumar los valores de cada fila y poner el resultado en el ultimo casillero de la fila correspondiente, pero por mas que lo intente no logro que resuelva el calculo por cada fila, si no, que el código que hice realiza el calculo por columna, que estoy haciendo mal? creí conocer el funcionamiento de la sentencia for cuando están anidados pero se me armo lío bárbaro
desde ya, muchas gracias!!! |
#10
|
||||
|
||||
Creo recordar que el stringgrid es columna, fila y lo estás poniendo al revés.
|
#11
|
||||
|
||||
Hola Paula, Veo que sigues luchando con tus grillas.... y como sugerencia, es bueno que contiinues los temas en los hilos que ya empezaste, y no abrir post nuevos con el mismo tema....asi todos pueden documentarse con las respuestas que ya se han venido dando.
Aunque no es política del foro hacerle la tarea a las personas... y con el perdon de los moderadores... aquí te va una posible solución a tu problema.
un saludo, |
#12
|
||||
|
||||
He combinado ambos hilos en uno.
|
#13
|
||||
|
||||
Cita:
Hace unas semanas me volví loco tratando de encontrar un error en mi mar de código. No veía donde estaba haciendo supuestamente mal unos cálculos... Todo estaba en orden. Todo estaba correcto. El único defecto es que al momento de presentar los datos confundí un A[j, i] con A[i, j]. Y Claro, como veía que los datos no coincidían con lo esperados que me puse en plan NewDelphius Super Sayayin en que alguna de las miles de operaciones fallaba. Así que lección aprendida: ahora tengo pegado un post-it en el monitor que dice, con letras rojas: "NO CONFUNDIR FILAS CON COLUMNAS" y una imagen indicando el sentido de filas y columnas con flechas de una matriz que lo acompaña. Por cierto... ya me quedé sin espacio en el monitor... tengo muchos post-its (afortunadamente ninguno es de la contraseña... a ese lo guardo en el cajón ) Saludos pegados, PD: Se han pedido los derechos de autor a Al para dar este saludo |
#14
|
||||
|
||||
Como sumar elementos de un stringGrid
es cierto lo de las filas y columnas, a pesar de que ya lo sabia no lo había tenido en cuenta. Muchas gracias por la información, y con respecto a "resolver mi tarea" simplemente pedí que me ayudaran a encontrar mi error, de todas formas agradezco que te tomes el tiempo de reescribir el código.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como borrar elementos de un stringGrid | PaulaGV | OOP | 3 | 25-04-2012 20:19:43 |
Como Borrar una fila del Stringgrid de forma correcta? | escorpionrojo43 | OOP | 1 | 24-07-2011 19:11:52 |
Sumar elementos de una list box | yessika19 | Varios | 4 | 05-01-2008 20:57:18 |
Sumar elementos de un ListBox | creus | Varios | 4 | 16-01-2007 19:34:05 |
como eliminar una fila del stringGrid. | Arturo | Varios | 3 | 12-10-2006 20:54:04 |
|