• Jueves 14 de Noviembre de 2024, 07:47

Autor Tema:  Pintar Celdas De Stringgrid  (Leído 2090 veces)

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Pintar Celdas De Stringgrid
« en: Viernes 25 de Agosto de 2006, 20:13 »
0
Pue bien amigos, resulta que quiero pintar los renglones de un StrinGrid de dos en dos para que se parezca al iTunes de Apple, para ello he generado el siguiente código.

int i,j;
        AnsiString clase[2]={"clRed","clBlue"},color;

        for(i=1;i<=StringGrid1->RowCount;i++)
        {
                for(j=0;j<=1;j++)
                {
                        color=clase[j];
                        StringGrid1->Color=clase;
                }
        }

al parecer todo esta bien, solo que hay un pequeño detalle, resulta que StringGrid1->Color al parecer no acepta una variable como valor, por lo tanto no puedo hacer lo que hago en el código, salvo ponder un color ya definido, por ejemplo StrinGrid1->Color=clRed; pero obiamente esto me pintará todos los renglones de rojo y lo que yo quiero es que uno sea rojo, otro azul, otro rojo y asi sucesivamente, alguien sabe que hacer en este caso?

De antemano gracias por las respuestas.

 :blink:  :unsure:  :comp:  :whistling:
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.

eL_MoStRo

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Pintar Celdas De Stringgrid
« Respuesta #1 en: Martes 29 de Agosto de 2006, 06:53 »
0
Hola!, por que no intentas asignandole un entero, afin de cuentas los valores de clBlue, clRed, no son mas que un enumerado, haz una prueba asignando un entero tal vez te de una advertencia de querer asignar un entero a un TColor si no kieres que aparezca solamente haz el cast y listo
Código: Text
  1.  
  2. int i,j;
  3. int clase[2]={10,100};
  4.  
  5. for(i=1;i&#60;=StringGrid1-&#62;RowCount;i++)
  6. {
  7.     for(j=0;j&#60;=1;j++)
  8.     {
  9.         StringGrid1-&#62;Color=clase[j];
  10.     }
  11. }
  12.  
  13.  

pero con esto solo lograras pintar todo el StringGrid no cada renglon. Espero y te sirva de ayuda

eL_MoStRo

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Pintar Celdas De Stringgrid
« Respuesta #2 en: Martes 29 de Agosto de 2006, 07:23 »
0
Citar
    int iX1,iY1, iX2, iY2;
    iX1 = iY1 = iX2 = iY2 = 0;
    for (int iI = 0; iI < StringGrid1->RowCount; iI++)
    {
        StringGrid1->Canvas->Pen->Style = psClear;
        StringGrid1->Canvas->Brush->Color = iI * 150;
        iX1 = 0;
        iY1 = iY2;
        iX2 = StringGrid1->DefaultColWidth * StringGrid1->ColCount + StringGrid1->GridLineWidth * StringGrid1->ColCount;
        iY2 = iY1 + StringGrid1->DefaultRowHeight + StringGrid1->GridLineWidth * 2;
        StringGrid1->Canvas->Rectangle(iX1, iY1, iX2, iY2);
    }

Talvez esto te ayude solo sustituye el valor del entero en el color para ver los resultados

Linspire

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
    • http://www.cedrela.com.mx
Re: Pintar Celdas De Stringgrid
« Respuesta #3 en: Martes 29 de Agosto de 2006, 15:33 »
0
Bueno, pues no es precisamente lo que deseaba pero de todas formas gracias a ambos por las respuestas, enalizaré el código un poco más a fondo.

Gracias de nuevo.  :hola:  :comp:  :kicking:
[size=109]My Blog de Programación[/i][/b][/size]
´


[size=109]Tan solo quiero pensar que todo es un sueño y que no quiero despertar
porque quiero controlarlo como yo quiera.
[/size]

Todo es posible, lo imposible solo cuesta un poco más. Dan Drown.