Ver Mensaje Individual
  #6  
Antiguo 11-03-2008
Ziara Ziara is offline
Miembro
 
Registrado: dic 2007
Posts: 43
Reputación: 0
Ziara Va por buen camino
Wenas una vez más, sobre lo de :
Cita:
tu código nunca llama al evento OnCustomDrawItem. En este evento deben estar las "instrucciones" necesarias para pintar cada celda
es mas o menos lo que intentaba decir, me explico, el listview que tengo creado está en un Form1 asociado a su respectivo Unit1, y en dicho Unit crearía el evento OnCustomDrawItem para poder colorear las filas, hasta ahí de acuerdo.

pero, el problema es que mi variable a tener en cuenta para pintar de un color u otro las filas de listview está dentro de un thread alojado en otro unit, ese thread se comporta como un bucle for, que, en cada iteración va cambiando la variable en cuestión, por tanto la forma que veo de colorear las filas del listview sería en el mismo Unit donde tengo el thread, por tanto no podría usar el evento OnCustomDrawItem.

he intentado algo como:

Código:
void __fastcall ThreadPackets::Execute()
{
...
Synchronize(UpdateListView);
}

void __fastcall ThreadPackets::UpdateListView()
{

            TListItem* item = Form1->ListView->Items->Add();
            item->Caption = cadenaIDx;
            item->SubItems->Add(cadenaTIm);
            item->SubItems->Add(cadenaPRt);

            if (cadenaPRt == "TCP")
            {
                Form1->ListView->Canvas->Brush->Color = clGreen;
            }
            else Form1->ListView->Canvas->Brush->Color = clRed;
          
}
donde ThreadPackets es una class TThread

pero no me pinta nada y he visto por internet algo sobre el backcolor, pero en builder no está la opción de Form1->ListView->Backcolor? hay alguna forma?

gracias
Responder Con Cita