PDA

Ver la Versión Completa : Ayuda en programa con grids y guardar valores


onlytk
11-11-2005, 01:56:48
Hola amigos, necesito de sus ideas y experiencia para hacer lo siguiente:

En un formulario necesito poner una Lista y algun componente tipo Grid, de tal manera que cuando seleccione un item de la lista este tenga x valores en el Grid en n filas y n columnas, si selecciono otro item este tendra otros valores y se veran reflejados en el Grid, estos valores tambien deben de ser calculados y almacenados en cierta fila, columna. como me aconsejan hacer esto???? para no saturar la memoria etc??.
A la vez estos datos originales y calculados deben de podedrse guardar en disco y recuperarse, por favor cualquier idea es bienvenido.

Salu2.

orodruin
11-11-2005, 08:38:18
Puedes poner un StringGrid y rellenarlo tu por código. Puede ser un poco costoso, pero si no obtienes los datos directamente de una SQL, és lo mejor. Accediendo a cada celda de ésta manera:

Grid.Cells[x,y]:='10,8';

Dónde x es la columna e y es la fila. Para guardar/cargar los valores, puedes usar un fichero de texto.

onlytk
11-11-2005, 19:54:07
gracias orodruin por responder, estaba pensando siempre en un StringGrid pero mi problema mas que todo es como manejo los datos que cada Item de la lista debe de tener, por ejemplo es como una base de datos practicamente, en una tabla van los valores de los items de una Lista (TList) y estas estan relacionadas de uno a mucho a otra tabla, de tal manera que si selecciono un item de la lista los diferentes datos relacionados a este item deben ser visualizados en el Grid, pero como hago esto??? uso una base de datos??? o uso estructuras las cuales crearia dinamicamente, pero temo complicarme. .......... Pero bueno lo mejor seria que existiese un componente tipo Excel que me permita manejar varias hojas y me permita guardar sus datos a un archivo y volver a recuperarlos, el Excel maneja varias hojas y cada hoja practicamente es un tipo de Grid, bueno existe algun componente capas de manejarme varias hojas al igual que el excel.

Gracias por las respuestas

Lepe
11-11-2005, 20:08:28
Si no tienes bases de datos, y lo tienes todo guardado en TList, puedes hacer una rutina genérica, que muestre un objeto del TList, en una fila y columna de un StringGrid, pasándole como parámetro un número (el código de ese elemento).

Para relacionar las 2 tablas, es exactamente igual que en una base de datos, en la lista A, cada elemento tendrá un código, y si no lo tiene, añadelo. En la tabla B, simplemente añades otro campo que se llame código y que tendrá su equivalente en la tabla A, ya tienes la relación uno a muchos formada.

Teniendo en cuenta los 2 puntos anteriores, simplemente implementa un bucle y muestra los datos.

Si prácticamente es una base de datos, implementalo como tal, seguro que es más fácil, ya que puedes usar relaciones Maestro-Detalle, y automáticamente queda guardado en la BBDD.

Si te decantas por el primer método, creo que el TList tiene el método SaveToSTream, que puede ser usado para escribir en disco.

saludos