SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: draugsul en Domingo 28 de Mayo de 2006, 06:51

Título: Stringgrid Celdas Vacias.
Publicado por: draugsul en Domingo 28 de Mayo de 2006, 06:51
Saludos:

Esta esla primera vez que escribo en el foro asi que espero hacerlo bien.

Estoy haciendo una pequeña aplicación, en la cual incluyo un StringGrid de 50 celdas. El detalle que no he logrado hacer es el siguiente, buscar las celdas que esten vacias y poder escribir en la primera de estas, claro haciendo que las que esten ocupadas no se sobreescriban. ¿Como puedo lograr esto?

Gracias.
Título: Re: Stringgrid Celdas Vacias.
Publicado por: Linspire en Domingo 28 de Mayo de 2006, 17:42
Bueno, supongo que primero tienes que recorrer el StringGrid con un for doble, algo así como.

int i,j;

for(i=1;i<=StringGrid1->ColCount;i++)
{
for(j=1;j<=StringGrid1->RowCount;i++)
{
if(StringGrid1[j]=" ") //Aquí es donde localizas una celda vacía
StringGrid1[j]="0"; //Sustituyes la celda vacía por el valor que quieras naturalmente esto no afacta a las demás.
else break;
}
}

O también pódrias declarar una variable AnsiString;
ejemplo.

AnsiString celda;

celda=StringGrid1[j];
Y se pondría así:

if(celda.IsEmpty()==true) en lugar de if(StringGrid1[j]=" ")

Bueno, eso es solo una idea para que te guies, escribí el código sin probarlo, espero que te sea de utilidad.

Suerte y saludos.  :D  <_<  :blink:  :whistling:
Título: Re: Stringgrid Celdas Vacias.
Publicado por: draugsul en Domingo 28 de Mayo de 2006, 23:17
Gracias carnal lo pondre en practica  :D
Título: Re: Stringgrid Celdas Vacias.
Publicado por: Vatoicc en Martes 30 de Mayo de 2006, 17:53
Tambien podrias hacer la condicion sin necesidad de declarar un AnsiString adicional

  if( StringGrid1->Cells[j].IsEmpty() )

pero creo que el for debe empezar en 0 y terminar un numero antes del total

   for( int i = 0; i < StringGrid1->ColCount; i++ )
      for( int i = 0; i < StringGrid1->RowCount; i++ )
         if( StringGrid1->Cells[j].IsEmpty() )
         {  
            StringGrid1->Cells[j] = "Algo";
            break;
         }

y el break no debe ir ahi, pues el codigo solo serviria para escribir en la primera celda si esta vacia, pero solo son detalles
Título: Re: Stringgrid Celdas Vacias.
Publicado por: Vatoicc en Martes 30 de Mayo de 2006, 17:54
jeje, el segundo for es el de j, es lo malo de copiar y pegar


for( int i = 0; i < StringGrid1->ColCount; i++ )
for( int j = 0; j < StringGrid1->RowCount; j++ )
if( StringGrid1->Cells[j].IsEmpty() )
{
StringGrid1->Cells[j] = "Algo";
break;
}