SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: el_shanky en Martes 1 de Abril de 2008, 09:47

Título: Eliminar Filas En Un Stringgrid
Publicado por: el_shanky en Martes 1 de Abril de 2008, 09:47
Me encuentro trabajando en un StringGrid y se me presenta la necesidad de eliminar una fila completamente.

Si alguien sabe de como hacer esto de forma sencilla o si alguien sabe de alguna función del StringGrid que logre esto, le estaré muy agradecido.

Mientras la sigo peliando...
 :lightsabre:  :lightsabre:  :lightsabre:
Título: Re: Eliminar Filas En Un Stringgrid
Publicado por: Elforious en Miércoles 2 de Abril de 2008, 19:23
Lo primero que se me ocurre (descartando los archivos), es que borres los datos de toda una fila, y que en una o varias variables guardes los datos de la de abajo para asignársela a la fila de arriba, y así sucesivamente hasta llegar a la última fila, algo así como el método burbuja, espero que me hayas entendido...

Suerte...
Título: Re: Eliminar Filas En Un Stringgrid
Publicado por: el_shanky en Miércoles 2 de Abril de 2008, 20:25
AL fin y al cabo es String Grid es una porquería!!!  :angry:

Bué lo que hice para zafar es en realidad borrar cada celda del stringgrid y luego descontarla...

Código: Text
  1.  
  2.  
  3. int cont=Form1->StringGrid1->RowCount;//Pongo la cantidad de filas en un contador
  4.  
  5. while(cont!=0){//este while me borra todas las celdas de cada fila poniendoles ""
  6. for(int i=0;i<6;i++)
  7.         Form1->StringGrid1->Cells[i][cont]="";
  8. cont--;
  9. }//end while
  10.  
  11. cont=Form1->StringGrid1->RowCount;//vuelvo a poner el contador al max de filas
  12.  
  13. while(cont!=2){//Ahora elimino las filas que estan de mas (TODAS MENOS 1)
  14.         Form1->StringGrid1->RowCount--;
  15.         cont--;
  16. }//en while
  17.  
  18.  
  19.  
  20.  

Esto logra mi cometido pero la verdad me parece medio rebuscado...

Me desilusiona que el stringGrid no tenga una función tan básica como la que busco.

Ahora, lo que yo buscaba era limpiar todas las celdas, en el caso de tener que limpiar solo una lo que vos me decis Elforious es corecto, sería cuestion de eliminar el contenido de las celdas de esa fila y luego subir todas las filas una mas arriba.

Gracias igual! salute
Título: Re: Eliminar Filas En Un Stringgrid
Publicado por: el_shanky en Jueves 3 de Abril de 2008, 11:52
Siguiendo investigando encontré que existe una función que es:


Código: Text
  1.  
  2.  
  3. StringGrid1->Rows[1]->Delete(1);
  4.  
  5.  
  6.  

La cual debería andar y borrarme la fila uno, y compila lo mas bien pero al momento de ejecutar esa parte del código salta un error diciendo (LO DE LA IMAGEN)


Etonces deduzo que si tiene ese error y esa función... es x que se debe poder eliminar una fila... alguien sabe como pasarla x alto a esa restricción?


Bué me aprece que me stoy haciendo mucho bardo al pedo... igal si alguien sabe de esto que hablo que me explice x favor!

gracias
Título: Re: Eliminar Filas En Un Stringgrid
Publicado por: Elforious en Sábado 5 de Abril de 2008, 02:41
Conosco una función que borra pero no elimina:
Código: Text
  1.  
  2. StringGrid1->Rows[1]->Clear();
  3.  
  4.  
Espero que te ayude.
Título: Re: Eliminar Filas En Un Stringgrid
Publicado por: el_shanky en Sábado 5 de Abril de 2008, 03:47
Sisi con esa simplifiqué uno de los ciclos while que puse arriba... pero siguo sin entender x que existen funciones que no se permite usar... :S
Título: Re: Eliminar Filas En Un Stringgrid
Publicado por: Elforious en Sábado 5 de Abril de 2008, 18:46
Si, lo que pasa es que existen funciones que en "TEORÍA" funcionan, pero en la vida real no es así, así que para asegurarte de que todo salga bien tienes que hacerlo a pulso  :comp:  jejeje, lo cual es divertido y así aprendes a salir del paso en situaciones difíciles...

Saludos.
Título: Re: Eliminar Filas En Un Stringgrid
Publicado por: el_shanky en Miércoles 30 de Abril de 2008, 15:20
haa veo.. vas copiando todo lo de la celda siguiente antes de eliminarla... bien! igual ya no lo necesito! Pero gracias igualmente! ya va a llegar alguien que le saque provecho!

Salute